local 道具处理类 = class()
local 图策范围 = {
	"项圈",
	"护腕",
	"铠甲"
}
local floor = math.floor
local remove = table.remove
local 已存在 = false
不可叠加道具列表 = {
	蓝色合成旗 = 1,
	黄色导标旗 = 1,
	白色合成旗 = 1,
	点化石 = 1,
	强化符 = 1,
	红色合成旗 = 1,
	红色导标旗 = 1,
	黄色合成旗 = 1,
	绿色导标旗 = 1,
	回收符 = 1,
	白色导标旗 = 1,
	绿色合成旗 = 1,
	空白强化符 = 1,
	蓝色导标旗 = 1
}
叠加属性 = {
	"不可交易",
	"阶品",
	"药性",
	"食材",
	"附带技能",
	"特效",
	"级别限制",
	"主人id",
	"灵气"
}
整理列表 = {}
修改可叠加道具 = {
	属性石 = "特效",
	灵饰洗练石 = 1,
	特效石 = "特效",
	战魄 = 1,
	特殊魔兽要诀 = "附带技能",
	舍利子 = "级别限制",
	源生之灵 = "特效",
	高级魔兽要诀 = "附带技能",
	特技石 = "特效",
	昆仑玉 = "级别限制",
	光芒石 = "级别限制",
	星辉石 = "级别限制",
	百炼精铁 = "子类",
	三界悬赏令 = 1,
	珍珠 = "级别限制",
	月亮石 = "级别限制",
	神兵图鉴 = "子类",
	灵宝图鉴 = "子类",
	神兽兽决 = "附带技能",
	未激活的星石 = "子类",
	清灵净瓶 = 1,
	特效石碎片 = "特效",
	召唤兽内丹 = "附带技能",
	点化石 = "附带技能",
	召唤兽蛋 = "特效",
	炼妖石 = "级别限制",
	黑宝石 = "级别限制",
	魔兽要诀 = "附带技能",
	神秘石 = "级别限制",
	元灵晶石 = "子类",
	太阳石 = "级别限制",
	炼兽真经 = 1,
	高级召唤兽内丹 = "附带技能",
	红玛瑙 = "级别限制",
	未激活的符石 = "符石名称",
	钟灵石 = {
		"附加特性",
		"级别限制"
	},
	制造指南书 = {
		"子类",
		"特效"
	},
	灵饰指南书 = {
		"子类",
		"特效"
	},
	上古锻造图策 = {
		"级别限制",
		"种类"
	},
	打造符 = {
		"主人id",
		"级别限制",
		"玩家名称"
	},
	裁缝符 = {
		"主人id",
		"级别限制",
		"玩家名称"
	},
	炼金符 = {
		"主人id",
		"级别限制",
		"玩家名称"
	},
	怪物卡片 = {
		"造型",
		"技能",
		"次数"
	}
}
新加可叠加道具 = {
	凌波城经脉秘籍 = 1,
	普陀山经脉秘籍 = 1,
	灵饰洗练石 = 1,
	属性转换符 = 1,
	七彩石 = 1,
	盘丝洞经脉秘籍 = 1,
	魔王寨经脉秘籍 = 1,
	源生之灵 = 1,
	神木林经脉秘籍 = 1,
	五庄观经脉秘籍 = 1,
	百炼晶石 = 1,
	化生寺经脉秘籍 = 1,
	黄帝内经 = 1,
	狮驼岭经脉秘籍 = 1,
	["15技能定制攻宠礼包"] = 1,
	["16技能胚子召唤兽礼包"] = 1,
	["20技能胚子召唤兽礼包"] = 1,
	["13技能定制法宠礼包"] = 1,
	百炼晶石碎片 = 1,
	["13技能定制攻宠礼包"] = 1,
	["15技能定制法宠礼包"] = 1,
	通灵重置丹 = 1,
	天宫经脉秘籍 = 1,
	储灵袋 = 1,
	["神行百变·坐骑礼包"] = 1,
	["百变坐骑·坐骑礼包"] = 1,
	驾驭宝典 = 1,
	孤儿名册 = 1,
	御行宝典 = 1,
	高级通灵重置丹 = 1,
	种族坐骑礼包 = 1,
	祥瑞坐骑礼包 = 1,
	["18技能胚子召唤兽礼包"] = 1,
	神兽自选礼包 = 1,
	蚩尤武诀 = 1,
	拜师卷轴 = 1,
	召唤兽蛋 = 1,
	["14技能胚子召唤兽礼包"] = 1,
	五行石 = 1,
	金钥匙 = 1,
	还魂秘术 = 1,
	龙宫经脉秘籍 = 1,
	方寸山经脉秘籍 = 1,
	["10技能胚子召唤兽礼包"] = 1,
	阴曹地府经脉秘籍 = 1,
	无底洞经脉秘籍 = 1,
	["12技能胚子召唤兽礼包"] = 1,
	炼兽真经 = 1,
	超级通灵重置丹 = 1,
	大唐官府经脉秘籍 = 1,
	易经丹 = 1,
	契约之书 = 1,
	女儿村经脉秘籍 = 1
}
默认不可交易道具列表 = {
	神秘钥匙 = 1,
	心魔宝珠 = 1,
	金钥匙 = 1
}
默认可交易道具列表 = {
	中级神魂丹 = 1,
	高级神魂丹 = 1,
	初级神魂丹 = 1,
	顶级神魂丹 = 1
}
可叠加道具列表 = {
	金银锦盒 = 1,
	熊胆 = 1,
	紫檀雕花柜 = 1,
	双鱼吉庆柜 = 1,
	初级神魂丹 = 1,
	旋复花 = 1,
	神兜兜 = 1,
	凤凰尾 = 1,
	超级金柳露 = 1,
	七叶莲 = 1,
	百炼晶石 = 1,
	虎骨酒 = 1,
	七彩石 = 1,
	地狱灵芝 = 1,
	如意符 = 1,
	火凤之睛 = 1,
	金柳露 = 1,
	龙鳞 = 1,
	百炼晶石碎片 = 1,
	石制院墙 = 1,
	白玉骨头 = 1,
	["60级灵饰礼包"] = 1,
	水黄莲 = 1,
	仙狐涎 = 1,
	["60级装备礼包"] = 1,
	["70级装备礼包"] = 1,
	["80级装备礼包"] = 1,
	["90级装备礼包"] = 1,
	["20级装备礼包"] = 1,
	["30级装备礼包"] = 1,
	["40级装备礼包"] = 1,
	["50级装备礼包"] = 1,
	月星子 = 1,
	血珊瑚 = 1,
	孔雀红 = 1,
	拜师卷轴 = 1,
	定魂珠 = 1,
	属性转换符 = 1,
	白虎石 = 1,
	["160级衣服定制礼包"] = "衣服",
	["160级头盔定制礼包"] = "头盔",
	["160级腰带定制礼包"] = "腰带",
	蝴蝶兰 = 1,
	飞行符 = 1,
	中级神魂丹 = 1,
	壮丽山河 = 1,
	凤凰傲意图 = 1,
	四圣兽之朱雀 = 1,
	嵌玉虎纹桌 = 1,
	龙凤呈祥 = 1,
	紫檀马桶 = 1,
	狮子图屏风 = 1,
	大理石影壁 = 1,
	大理石桌 = 1,
	水仙 = 1,
	白露为霜 = 1,
	["120级装备礼包"] = 1,
	鹿茸 = 1,
	四圣兽之玄武 = 1,
	木地板 = 1,
	丁香水 = 1,
	修炼果 = 1,
	千佛图 = 1,
	蓝绸绣花帘 = 1,
	龙之心屑 = 1,
	九香虫 = 1,
	榛木床 = 1,
	["10级装备礼包"] = 1,
	包子 = 1,
	仙人掌 = 1,
	鬼切草 = 1,
	月牙凳 = 1,
	漆花地板 = 1,
	紫丹罗 = 1,
	["150级装备礼包"] = 1,
	花鸟图屏风 = 1,
	["140级装备礼包"] = 1,
	彩绘花瓶 = 1,
	三界悬赏令 = 1,
	紫石英 = 1,
	["160级装备礼包"] = 1,
	漆花竹凳 = 1,
	["110级装备礼包"] = 1,
	白虎皮地毯 = 1,
	["100级装备礼包"] = 1,
	高级宠物口粮 = 1,
	["130级装备礼包"] = 1,
	横批 = 1,
	宁安夜梦 = 1,
	彩绘立柜 = 1,
	夕阳山水图 = 1,
	青龙石 = 1,
	御行宝典 = 1,
	高级神魂丹 = 1,
	对联 = 1,
	符石卷轴 = 1,
	兽皮地毯 = 1,
	麻木地毯 = 1,
	八宝呈祥桌 = 1,
	金创药 = 1,
	摄妖香 = 1,
	顶级神魂丹 = 1,
	红杏闹春帘 = 1,
	紫檀雕花椅 = 1,
	玉瓷画瓶 = 1,
	虎威太师椅 = 1,
	天山云雪 = 1,
	招财聚宝柜 = 1,
	金钥匙 = 1,
	天不老 = 1,
	四叶花 = 1,
	八卦镇邪塌 = 1,
	桦木立柜 = 1,
	餐风饮露 = 1,
	金座雕龙屏风 = 1,
	青瓷花盆 = 1,
	长信女宫灯 = 1,
	["13技能定制法宠礼包"] = 1,
	["160级武器定制礼包"] = "武器",
	桦木靠背椅 = 1,
	桦木圆桌 = 1,
	超级通灵重置丹 = 1,
	["13技能定制攻宠礼包"] = 1,
	香叶 = 1,
	突厥密函 = 1,
	草果 = 1,
	契约之书 = 1,
	白鹤展翅帘 = 1,
	曼陀罗花 = 1,
	特赦令牌 = 1,
	灵饰洗练石 = 1,
	龙须草 = 1,
	君子兰 = 1,
	红木八仙桌 = 1,
	青石路砖 = 1,
	麝香 = 1,
	篱笆院墙 = 1,
	石凳 = 1,
	石制宫灯 = 1,
	石制影壁 = 1,
	["15技能定制法宠礼包"] = 1,
	石桌 = 1,
	["15技能定制攻宠礼包"] = 1,
	大理石凳 = 1,
	大理石花圃 = 1,
	山药 = 1,
	天龙水 = 1,
	福 = 1,
	红漆雕花门 = 1,
	通灵重置丹 = 1,
	神仙帐 = 1,
	印花屏风 = 1,
	人参 = 1,
	波丝地毯 = 1,
	篱笆花圃 = 1,
	白栅绿竹门 = 1,
	避水珠 = 1,
	高级通灵重置丹 = 1,
	天青地白 = 1,
	金刚石 = 1,
	白玉花圃 = 1,
	女儿红 = 1,
	血色茶花 = 1,
	白玉狮子 = 1,
	白玉石凳 = 1,
	白玉影壁 = 1,
	花岗石路砖 = 1,
	["100级灵饰礼包"] = 1,
	混土砖石院墙 = 1,
	金丝楠木门 = 1,
	附魔宝珠 = 1,
	山水盆景 = 1,
	四圣兽之白虎 = 1,
	四圣兽之青龙 = 1,
	银烛台 = 1,
	麻布地毯 = 1,
	灵脂 = 1,
	吸附石 = 1,
	物品柜 = 1,
	黑麻垂蔓帘 = 1,
	六道轮回 = 1,
	["160级项链定制礼包"] = "项链",
	坐骑转型丹 = 1,
	黄锻锦边帘 = 1,
	佛手 = 1,
	踏春图 = 1,
	玄武石 = 1,
	夜光珠 = 1,
	神兽自选礼包 = 1,
	青铜鼎 = 1,
	猛虎坐山图 = 1,
	分解符 = 1,
	洞冥草 = 1,
	龟鹤延年灯 = 1,
	宠物口粮 = 1,
	朱雀石 = 1,
	红木地板 = 1,
	五谷轮回桶 = 1,
	圣兽丹 = 1,
	白玉石桌 = 1,
	["160级鞋子定制礼包"] = "鞋子",
	海马 = 1,
	驾驭宝典 = 1,
	雕花马桶 = 1,
	八角莲叶 = 1,
	清灵净瓶 = 1,
	["18技能胚子召唤兽礼包"] = 1,
	["80级灵饰礼包"] = 1,
	窗帘 = 1,
	文竹 = 1,
	["14技能胚子召唤兽礼包"] = 1,
	五行石 = 1,
	["16技能胚子召唤兽礼包"] = 1,
	["20技能胚子召唤兽礼包"] = 1,
	桦木地板 = 1,
	["10技能胚子召唤兽礼包"] = 1,
	百兽镇邪桌 = 1,
	陨铁 = 1,
	["12技能胚子召唤兽礼包"] = 1,
	炼兽真经 = 1,
	百色花 = 1,
	坐骑内丹 = 1,
	易经丹 = 1,
	魔兽残卷 = 1,
	心魔宝珠 = 1,
	硫磺草 = 1
}
附带技能判定列表 = {
	普陀山经脉秘籍 = 1,
	五庄观经脉秘籍 = 1,
	化生寺经脉秘籍 = 1,
	点化石 = 1,
	六艺修行书 = 1,
	盘丝洞经脉秘籍 = 1,
	大唐官经脉秘籍 = 1,
	神木林经脉秘籍 = 1,
	高级魔兽要诀 = 1,
	魔兽要诀 = 1,
	特殊魔兽要诀 = 1,
	魔王寨经脉秘籍 = 1,
	狮驼岭经脉秘籍 = 1,
	阴曹地经脉秘籍 = 1,
	龙宫经脉秘籍 = 1,
	方寸山经脉秘籍 = 1,
	天宫经脉秘籍 = 1,
	女儿村经脉秘籍 = 1,
	无底洞经脉秘籍 = 1,
	神兽兽决 = 1,
	高级召唤兽内丹 = 1,
	凌波城经脉秘籍 = 1,
	召唤兽内丹 = 1
}
食材判定列表 = {
	资质丸 = 1,
	元宵 = 1
}
特效判定列表 = {
	特技石 = 1,
	属性石 = 1,
	特效石 = 1,
	召唤兽蛋 = 1,
	特效石碎片 = 1,
	源生之灵 = 1
}
阶品判定列表 = {
	月华露 = 1,
	九转金丹 = 1
}
阶品判定列表1 = {
	九转回魂丹 = 1,
	千年保心丹 = 1,
	十香返生丸 = 1,
	小还丹 = 1,
	定神香 = 1,
	五龙丹 = 1,
	佛光舍利子 = 1,
	金香玉 = 1,
	蛇蝎美人 = 1,
	风水混元丹 = 1
}

function 道具处理类:取是否可叠加(id, 名称, 被叠道具, 参数1, 叠加道具)
	local 道具1, 道具2 = nil

	if 叠加道具 ~= nil then
		道具1 = 叠加道具
	else
		道具1 = {}
	end

	if 被叠道具 == nil then
		return false
	elseif 书铁列表1[名称] ~= nil then
		return false
	end

	道具2 = self.数据[被叠道具]

	if 叠加道具 == nil and 道具购买价格列表[id] ~= nil and 道具2.购买价格 == nil then
		return false
	elseif 叠加道具 ~= nil and 叠加道具.购买价格 ~= 道具2.购买价格 and (叠加道具.购买价格 == nil or 道具2.购买价格 == nil) then
		return false
	end

	local 参数 = {}

	if 道具2 ~= nil and 道具2.名称 == 名称 and 道具2.数量 ~= nil and 道具2.可叠加 ~= nil then
		if 默认不可交易道具列表[名称] ~= nil then
			道具1.不可交易 = true
			道具2.不可交易 = true

			return true
		elseif 默认可交易道具列表[名称] ~= nil then
			道具1.不可交易 = nil
			道具2.不可交易 = nil

			return true
		elseif 可叠加道具列表[名称] ~= nil then
			return true
		elseif 修改可叠加道具[名称] ~= nil then
			if type(修改可叠加道具[名称]) == "number" then
				return true
			elseif type(修改可叠加道具[名称]) == "string" then
				参数[#参数 + 1] = 修改可叠加道具[名称]
			elseif type(修改可叠加道具[名称]) == "table" then
				参数 = 列表2加入到列表1(参数, 修改可叠加道具[名称])
			end
		elseif 道具1.总类 == 889 then
			return true
		elseif 附带技能判定列表[名称] ~= nil then
			参数 = {
				"附带技能"
			}
		elseif 食材判定列表[名称] ~= nil then
			参数 = {
				"食材"
			}
		elseif 特效判定列表[名称] ~= nil then
			参数 = {
				"特效"
			}
		elseif 烹饪列表[名称] ~= nil or 阶品判定列表[名称] ~= nil then
			参数 = {
				"阶品"
			}
		elseif 阶品判定列表1[名称] ~= nil then
			参数 = {
				"阶品",
				"药性"
			}
		elseif 宝石列表1[名称] ~= nil then
			参数 = {
				"级别限制"
			}
		elseif 名称 == "秘制红罗羹" then
			参数 = {
				"气血"
			}
		elseif 名称 == "秘制绿罗羹" then
			参数 = {
				"魔法"
			}
		elseif 名称 == "初级清灵仙露" or 名称 == "中级清灵仙露" or 名称 == "高级清灵仙露" then
			参数 = {
				"灵气"
			}
		end

		if not 判断是否为空表(参数) then
			for i = 1, #参数 do
				if 道具1[参数[i]] == nil and #参数 == 1 then
					道具1[参数[i]] = 参数1
				end

				if 道具1[参数[i]] ~= 道具2[参数[i]] then
					return false
				end
			end
		else
			for i = 1, #叠加属性 do
				if 道具1[叠加属性[i]] ~= 道具2[叠加属性[i]] then
					return false
				end
			end
		end

		return true
	else
		return false
	end
end

购买价格刷新 = function(道具1, 道具2)
	if 道具1.购买价格 ~= nil and 道具2.购买价格 ~= nil then
		local jg = qz((道具1.购买价格 * (道具1.数量 or 1) + 道具2.购买价格 * (道具2.数量 or 1)) / ((道具1.数量 or 1) + (道具2.数量 or 1)))
		道具1.购买价格 = jg + 0
		道具2.购买价格 = jg + 0
	end
end

道具整理对比 = function(道具1, 道具2, 对比列表)
	if 道具1.购买价格 ~= 道具2.购买价格 and (道具1.购买价格 == nil or 道具2.购买价格 == nil) then
		return false
	end

	if 默认不可交易道具列表[道具1.名称] ~= nil then
		道具1.不可交易 = true
		道具2.不可交易 = true

		购买价格刷新(道具1, 道具2)

		return true
	elseif 默认可交易道具列表[道具1.名称] ~= nil then
		道具1.不可交易 = nil
		道具2.不可交易 = nil

		购买价格刷新(道具1, 道具2)

		return true
	end

	if 道具1.不可交易 == false then
		道具1.不可交易 = nil
	end

	if 道具2.不可交易 == false then
		道具2.不可交易 = nil
	end

	if 道具1.不可交易 ~= 道具2.不可交易 then
		return false
	end

	if 可叠加道具列表[道具1.名称] ~= nil then
		购买价格刷新(道具1, 道具2)

		return true
	end

	if 修改可叠加道具[道具1.名称] ~= nil then
		local aa = 修改可叠加道具[道具1.名称]

		if type(aa) == "table" then
			for i = 1, #aa do
				if 道具1[aa[i]] ~= 道具2[aa[i]] then
					return false
				end
			end
		elseif 道具1[aa] ~= 道具2[aa] then
			return false
		end
	elseif 道具1.总类 == 889 then
		购买价格刷新(道具1, 道具2)

		return true
	else
		for i = 1, #对比列表 do
			if 道具1[对比列表[i]] ~= 道具2[对比列表[i]] then
				return false
			end
		end
	end

	购买价格刷新(道具1, 道具2)

	return true
end

function 道具处理类:整理叠加(数字id, v)
	if (修改可叠加道具[self.数据[v].名称] ~= nil or self.数据[v].总类 == 889) and (self.数据[v].可叠加 ~= true or self.数据[v].数量 == nil) then
		self.数据[v].可叠加 = true
		self.数据[v].数量 = self.数据[v].数量 or 1
	end

	if self.数据[v].名称 == "战魄" and self.数据[v].级别限制 == nil then
		self.数据[v].级别限制 = 160
	end

	if self.数据[v].可叠加 == true and self.数据[v].数量 ~= nil and self.数据[v].数量 < 9999 then
		local mc = self.数据[v].名称

		if 整理列表[数字id][mc] == nil or 判断是否为空表(整理列表[数字id][mc]) then
			整理列表[数字id][mc] = {}
			整理列表[数字id][mc][#整理列表[数字id][mc] + 1] = v
		else
			for i = 1, #整理列表[数字id][mc] do
				local w = 整理列表[数字id][mc][i]

				if 道具整理对比(self.数据[w], self.数据[v], 叠加属性) then
					if self.数据[v].数量 + self.数据[w].数量 < 9999 then
						self.数据[w].数量 = self.数据[w].数量 + self.数据[v].数量
						self.数据[v] = nil

						break
					else
						self.数据[v].数量 = self.数据[v].数量 + self.数据[w].数量 - 9999
						self.数据[w].数量 = 9999

						table.remove(整理列表[数字id][mc], i)

						整理列表[数字id][mc][#整理列表[数字id][mc] + 1] = v

						break
					end
				end

				if i == #整理列表[数字id][mc] then
					整理列表[数字id][mc][#整理列表[数字id][mc] + 1] = v
				end
			end
		end
	end
end

道具名称排序 = {}
道具名称排序记录 = 1
特殊排序道具 = {
	灵饰指南书 = {
		"特效",
		{
			手镯 = 4,
			耳饰 = 1,
			佩饰 = 2,
			戒指 = 3
		}
	},
	制造指南书 = {
		"特效"
	},
	上古锻造图策 = {
		"种类",
		{
			项圈 = 2,
			护腕 = 1,
			铠甲 = 3
		}
	},
	藏宝图 = {
		"地图编号"
	},
	高级藏宝图 = {
		"地图编号"
	},
	怪物卡片 = {
		"等级"
	}
}

function 道具处理类:取整理排序编号(道具数据)
	if 道具数据.总类 == nil or 道具数据.分类 == nil then
		local aa = 取物品数据(道具数据.名称)

		if not 判断是否为空表(aa) then
			道具数据.总类 = 道具数据.总类 or aa[2]
			道具数据.分类 = 道具数据.分类 or aa[3]
		end
	end

	local 粗分 = tostring(tonumber(道具数据.总类) or 0) .. tostring(tonumber(道具数据.分类) or 0)
	local 细分 = 0

	if 道具数据.级别限制 ~= nil then
		细分 = 细分 + (tonumber(道具数据.级别限制) or 0)
	end

	if 道具数据.阶品 ~= nil then
		细分 = 细分 + (tonumber(道具数据.阶品) or 0)
	end

	if 特殊排序道具[道具数据.名称] ~= nil then
		if 特殊排序道具[道具数据.名称][2] ~= nil then
			细分 = tostring(10000 + (tonumber(特殊排序道具[道具数据.名称][2][道具数据[特殊排序道具[道具数据.名称][1]]] or 0) or 0)) .. tostring(10000 + (tonumber(道具数据.子类) or 0)) .. tostring(10000 + 细分)
		else
			细分 = tostring(10000 + (tonumber(道具数据[特殊排序道具[道具数据.名称][1]] or 0) or 0)) .. tostring(10000 + (tonumber(道具数据.子类) or 0)) .. tostring(10000 + 细分)
		end
	else
		细分 = tostring(10000 + (tonumber(道具数据.子类) or 0)) .. tostring(10000 + 细分)
	end

	if 道具名称排序[道具数据.名称] == nil then
		道具名称排序[道具数据.名称] = 道具名称排序记录 + 0
		道具名称排序记录 = 道具名称排序记录 + 1
	end

	local aa = tonumber(粗分 .. tostring(10000 + 道具名称排序[道具数据.名称]) .. "." .. tostring(细分))

	return aa
end

function 道具处理类:整理背包仓库(数字id, 类型, 类型2, 仓库页数)
	local id = 数字id
	local 类型 = 类型

	if 玩家数据[id].整理背包 ~= nil and os.time() - 玩家数据[id].整理背包 < 整理间隔 then
		常规提示(id, "整理操作过于频繁、请等待#R" .. 整理间隔 - (os.time() - 玩家数据[id].整理背包) .. "#Y秒！")

		return
	end

	玩家数据[id].整理背包 = os.time()
	整理列表[数字id] = {}

	if 类型 == "超级行囊" then
		local 临时表 = {}
		local 类型 = 取超级行囊类型(类型2)

		for k, v in pairs(玩家数据[id].角色.数据.超级行囊[类型]) do
			if self.数据[v] ~= nil then
				self:整理叠加(数字id, v)

				if self.数据[v] ~= nil then
					临时表[#临时表 + 1] = {
						data = v,
						type = self:取整理排序编号(self.数据[v])
					}
				end
			end
		end

		table.sort(临时表, function (a, b)
			return a.type < b.type
		end)

		玩家数据[id].角色.数据.超级行囊[类型] = {}
		玩家数据[id].角色.数据.超级行囊打开[类型] = nil

		for i = 1, #临时表 do
			玩家数据[id].角色.数据.超级行囊[类型][i] = 临时表[i].data
		end

		self:索要超级行囊(玩家数据[id].连接id, 数字id, 类型, 类型2)
		常规提示(id, "超级行囊整理成功")
	elseif 类型 == "道具" or 类型 == "行囊" or 类型 == "法宝" then
		local 临时表 = {}

		for k, v in pairs(玩家数据[id].角色.数据[类型]) do
			if self.数据[v] ~= nil then
				self:整理叠加(数字id, v)

				if self.数据[v] ~= nil then
					临时表[#临时表 + 1] = {
						data = v,
						type = self:取整理排序编号(self.数据[v])
					}
				end
			end
		end

		table.sort(临时表, function (a, b)
			return a.type < b.type
		end)

		玩家数据[id].角色.数据[类型] = {}

		for i = 1, #临时表 do
			玩家数据[id].角色.数据[类型][i] = 临时表[i].data
		end

		if 类型 == "道具" then
			self:索要道具(玩家数据[id].连接id, id, true)
		elseif 类型 == "行囊" then
			self:索要行囊(玩家数据[id].连接id, id, true)
		else
			self:索要法宝(玩家数据[id].连接id, id, true)
		end

		常规提示(id, "整理成功")
	elseif 类型 == "单页仓库" then
		local 道具表 = {}
		local 道具表1 = {}
		仓库页数 = 仓库页数 or 1
		local 道具类型 = 类型2

		if 道具类型 == nil or 玩家数据[id].角色.数据.道具仓库[仓库页数] == nil then
			常规提示(id, "数据异常,刷新失败1")

			return
		end

		for q, w in pairs(玩家数据[id].角色.数据.道具仓库[仓库页数]) do
			if self.数据[w] ~= nil then
				local join = true

				if 道具表1[w] ~= nil then
					join = false
				end

				if join then
					道具表[#道具表 + 1] = w
					道具表1[w] = 1
				end
			end
		end

		local 临时表 = {}

		for k, v in pairs(道具表) do
			if self.数据[v] ~= nil then
				self:整理叠加(数字id, v)

				if self.数据[v] ~= nil then
					临时表[#临时表 + 1] = {
						data = v,
						type = self:取整理排序编号(self.数据[v])
					}
				end
			end
		end

		table.sort(临时表, function (a, b)
			return a.type < b.type
		end)

		玩家数据[id].角色.数据.道具仓库[仓库页数] = {}

		for i = 1, #临时表 do
			玩家数据[id].角色.数据.道具仓库[仓库页数][i] = 临时表[i].data

			if i > 20 then
				break
			end
		end

		玩家数据[id].角色.数据.道具仓库打开[仓库页数] = nil

		发送数据(玩家数据[id].连接id, 3524, {
			道具 = self:索要仓库道具(id, 仓库页数),
			页数 = 仓库页数
		})
		常规提示(id, "仓库单页整理成功")
	elseif 类型 == "仓库" then
		local 道具表 = {}
		local 道具表1 = {}
		local 仓库页数 = 1
		local 道具类型 = 类型2

		if 仓库页数 == nil or 道具类型 == nil then
			常规提示(id, "数据异常,刷新失败1")

			return
		end

		for k, v in pairs(玩家数据[id].角色.数据.道具仓库) do
			for q, w in pairs(v) do
				if self.数据[w] ~= nil then
					local join = true

					if 道具表1[w] ~= nil then
						join = false
					end

					if join then
						道具表[#道具表 + 1] = w
						道具表1[w] = 1
					end
				end
			end
		end

		local 临时表 = {}

		for k, v in pairs(道具表) do
			if self.数据[v] ~= nil then
				self:整理叠加(数字id, v)

				if self.数据[v] ~= nil then
					临时表[#临时表 + 1] = {
						data = v,
						type = self:取整理排序编号(self.数据[v])
					}
				end
			end
		end

		table.sort(临时表, function (a, b)
			return a.type < b.type
		end)

		for k, v in pairs(玩家数据[id].角色.数据.道具仓库) do
			玩家数据[id].角色.数据.道具仓库[k] = {}
		end

		local 仓库数 = 1
		local 道具数 = 1

		for i = 1, #临时表 do
			玩家数据[id].角色.数据.道具仓库[仓库数][道具数] = 临时表[i].data
			道具数 = 道具数 + 1

			if i % 20 == 0 then
				道具数 = 1
				仓库数 = 仓库数 + 1
			end
		end

		玩家数据[id].角色.数据.道具仓库打开 = {}

		发送数据(玩家数据[id].连接id, 3524, {
			页数 = 1,
			道具 = self:索要仓库道具(id, 1)
		})
		常规提示(id, "仓库整理成功")
	else
		常规提示(id, "数据异常,刷新失败2")
	end

	整理列表[数字id] = nil
end

function 道具处理类:初始化(id)
	self.玩家id = id
	self.数据 = {}
	self.飞行传送点 = {
		{
			1001,
			336,
			217
		},
		{
			1001,
			358,
			35
		},
		{
			1501,
			65,
			112
		},
		{
			1092,
			122,
			54
		},
		{
			1070,
			106,
			158
		},
		{
			1040,
			108,
			98
		},
		{
			1226,
			117,
			48
		},
		{
			1208,
			128,
			36
		}
	}
end

function 道具处理类:数据处理(连接id, 序号, 数字id, 数据)
	if 假人系统 and BoothCtrl:MsgCtrl(连接id, 序号, 数字id, 数据) then
		return
	end

	if 玩家数据[数字id].摊位数据 ~= nil and 序号 ~= 3699 and 序号 ~= 3700 and 序号 ~= 3720 and 序号 ~= 3721 and 序号 ~= 3722 and 序号 ~= 3723 and 序号 ~= 3724 then
		常规提示(数字id, "#Y/摆摊状态下禁止此种行为")

		return
	end

	if 序号 == 3699 then
		local id = 数字id

		发送数据(玩家数据[id].连接id, 3503, 玩家数据[id].角色:取装备数据())
		发送数据(玩家数据[id].连接id, 3506, 玩家数据[id].角色:取灵饰数据())
		self:索要道具(连接id, 数字id, 数据)
	elseif 序号 == 3700 then
		self:索要行囊(连接id, 数字id, 数据.获取)
	elseif 序号 == 3700.1 then
		self:索要超级行囊(连接id, 数字id, 取超级行囊类型(数据.参数), 数据.参数, 数据.获取)
	elseif 序号 == 3700.2 then
		self:超级行囊物品转移(连接id, 数字id, 数据)
	elseif 序号 == 3700.3 then
		self:行囊物品转移超级行囊(连接id, 数字id, 数据)
	elseif 序号 == 3700.4 then
		self:道具加锁解锁(连接id, 数字id, 数据)
	elseif 序号 == 3701 then
		self:道具格子互换(连接id, 数字id, 数据)
	elseif 序号 == 3701.1 then
		self:道具格子互换1(连接id, 数字id, 数据)
	elseif 序号 == 3701.2 then
		self:道具拆分(连接id, 数字id, 数据)
	elseif 序号 == 3702 then
		self:丢弃道具(连接id, 数字id, 数据)
	elseif 序号 == 3703 then
		self:佩戴装备(连接id, 数字id, 数据)
	elseif 序号 == 3704 then
		self:卸下装备(连接id, 数字id, 数据)
	elseif 序号 == 3705 then
		self:使用道具(连接id, 数字id, 数据)
	elseif 序号 == 3706 then
		self:飞行符传送(连接id, 数字id, 数据)
	elseif 序号 == 3707 then
		if 玩家数据[数字id].角色.数据.道具行囊打开.道具 ~= nil then
			发送数据(连接id, 14)
		else
			发送数据(连接id, 14, 玩家数据[数字id].道具:索要道具1(数字id))
		end
	elseif 序号 == 3708 then
		self:佩戴bb装备(连接id, 数字id, 数据)
	elseif 序号 == 3709 then
		self:卸下bb装备(连接id, 数字id, 数据)
	elseif 序号 == 3710 then
		self:染色处理(连接id, 数字id, 数据)
	elseif 序号 == 3711 then
		玩家数据[数字id].角色:学习门派技能(连接id, 数字id, 数据.序列, 数据.等级)
	elseif 序号 == 3712 then
		玩家数据[数字id].角色:学习生活技能(连接id, 数字id, 数据.序列)
	elseif 序号 == 3712.1 then
		玩家数据[数字id].角色:学习强化技能(连接id, 数字id, 数据.序列)
	elseif 序号 == 3713 then
		self:烹饪处理(连接id, 数字id, 数据)
	elseif 序号 == 3714 then
		self:炼药处理(连接id, 数字id, 数据)
	elseif 序号 == 3715 then
		self:给予处理(连接id, 数字id, 数据)
	elseif 序号 == 3716 then
		玩家数据[数字id].给予数据 = {
			类型 = 2,
			id = 数据.id + 0
		}

		发送数据(连接id, 3507, {
			类型 = "玩家",
			道具 = self:索要道具1(数字id),
			名称 = 玩家数据[数据.id + 0].角色.数据.名称,
			等级 = 玩家数据[数据.id + 0].角色.数据.等级
		})
	elseif 序号 == 3717 then
		self:设置交易数据(连接id, 数字id, 数据)
	elseif 序号 == 3718 then
		self:发起交易处理(连接id, 数字id, 数据.id)
	elseif 序号 == 3719 then
		self:取消交易(数字id)
	elseif 序号 == 3720 then
		self:索要摊位数据(连接id, 数字id, 3515)
	elseif 序号 == 3721 then
		self:更改摊位招牌(连接id, 数字id, 数据.名称)
	elseif 序号 == 3722 then
		self:摊位上架商品(连接id, 数字id, 数据)
	elseif 序号 == 3723 then
		self:摊位下架商品(连接id, 数字id, 数据)
	elseif 序号 == 3724 then
		self:收摊处理(连接id, 数字id)
	elseif 序号 == 3725 then
		self:索要其他玩家摊位(连接id, 数字id, 数据.id, 3521)
	elseif 序号 == 3726 then
		self:购买摊位商品(连接id, 数字id, 数据)
	elseif 序号 == 3727 then
		self:快捷加血(连接id, 数字id, 数据.类型)
	elseif 序号 == 3728 then
		self:快捷加蓝(连接id, 数字id, 数据.类型)
	elseif 序号 == 3729 then
		if 数据.序列 > #玩家数据[数字id].角色.数据.道具仓库 then
			常规提示(数字id, "#Y/这已经是最后一页了")

			return
		elseif 数据.序列 < 1 then
			return
		end

		发送数据(连接id, 3524, {
			道具 = self:索要仓库道具(数字id, 数据.序列, 数据.获取),
			页数 = 数据.序列
		})
	elseif 序号 == 3730 then
		self:仓库存放事件(连接id, 数字id, 数据)
	elseif 序号 == 3731 then
		self:仓库取走事件(连接id, 数字id, 数据)
	elseif 序号 == 3732 then
		self:索要法宝(连接id, 数字id, 数据.获取)
	elseif 序号 == 3733 then
		self:修炼法宝(连接id, 数字id, 数据.序列)
	elseif 序号 == 3734 then
		self:卸下法宝(连接id, 数字id, 数据.序列)
	elseif 序号 == 3735 then
		self:替换法宝(连接id, 数字id, 数据.序列, 数据.序列1)
	elseif 序号 == 3736 then
		self:使用法宝(连接id, 数字id, 数据.序列)
	elseif 序号 == 3737 then
		self:使用合成旗(连接id, 数字id, 数据.序列)
	elseif 序号 == 3738 then
		self:完成交易处理(数字id)
	elseif 序号 == 3739 then
		self:出售道具(连接id, 数字id, 数据)
	elseif 序号 == 3740 then
	elseif 序号 == 3741 then
	elseif 序号 == 3742 then
		local 仓库上限 = 20

		if 取银子(数字id) < 5000000 then
			常规提示(数字id, "#Y你银子不够开启仓库哦！")

			return
		end

		if 仓库上限 <= #玩家数据[数字id].角色.数据.道具仓库 then
			常规提示(数字id, "#Y你当前仓库数量已达上限！")

			return
		end

		玩家数据[数字id].角色:扣除银子(5000000, 0, 0, "扩充仓库", 1)

		玩家数据[数字id].角色.数据.道具仓库[#玩家数据[数字id].角色.数据.道具仓库 + 1] = {}

		常规提示(数字id, "#Y仓库扩充成功，当前数量为#R" .. #玩家数据[数字id].角色.数据.道具仓库 .. "#Y个，还可以扩充#R" .. 仓库上限 - #玩家数据[数字id].角色.数据.道具仓库 .. "#Y个！")
	elseif 序号 == 3743 then
		self:帮派点修处理(连接id, 数字id, 数据)
	elseif 序号 == 3744 then
		玩家数据[数字id].角色:帮派学习生活技能(连接id, 数字id, 数据.序列, 数据.次数)
	elseif 序号 == 3745 then
		if 数据.助战编号 ~= nil then
			if 玩家数据[数字id].助战.数据[数据.助战编号] == nil then
				常规提示(数字id, "#Y助战数据出错！")

				return
			end

			self:武器染色处理(连接id, 数字id, 数据, 玩家数据[数字id].助战.数据[数据.助战编号], 数据.助战编号)
		else
			self:武器染色处理(连接id, 数字id, 数据, 玩家数据[数字id].角色.数据)
		end
	elseif 序号 == 3745.1 then
		if 是否月卡用户(数字id) == false then
			常规提示(数字id, "#Y你不是月卡用户、无法使用该功能！")

			return
		end

		if 数据.助战编号 ~= nil then
			if 玩家数据[数字id].助战.数据[数据.助战编号] == nil then
				常规提示(数字id, "#Y助战数据出错！")

				return
			end

			self:光武拓印处理(连接id, 数字id, 数据, 玩家数据[数字id].助战.数据[数据.助战编号], 数据.助战编号)
		else
			self:光武拓印处理(连接id, 数字id, 数据, 玩家数据[数字id].角色.数据)
		end
	elseif 序号 == 3746 then
		if 玩家数据[数字id].角色.数据.门派 == "无门派" or 玩家数据[数字id].角色.数据.门派 == nil then
			常规提示(数字id, "#Y你当前没有门派无法打开经脉系统！")

			return
		end

		发送数据(玩家数据[数字id].连接id, 77, 玩家数据[数字id].角色:经脉处理(数字id))
	elseif 序号 == 3747 then
		玩家数据[数字id].角色:清空奇经八脉(数字id)
	elseif 序号 == 3749 then
		self:坐骑染色处理(连接id, 数字id, 数据)
	elseif 序号 == 3750 then
		self:穿戴饰品(连接id, 数字id, 数据)
	elseif 序号 == 3751 then
		self:坐骑饰品染色处理(连接id, 数字id, 数据)
	elseif 序号 == 3752.1 then
	elseif 序号 == 3753 then
		self:卸下饰品(连接id, 数字id, 数据)
	elseif 序号 == 3754 then
		self:法宝合成(连接id, 数字id, 数据)
	elseif 序号 == 3755 then
		if 当前抽奖类型[数字id] == "点卡宝箱" then
			self:神秘宝箱处理(连接id, 数字id, 数据)
		elseif 当前抽奖类型[数字id] == "迷宫宝箱" then
			self:迷宫宝箱处理(连接id, 数字id)
		end

		当前抽奖类型[数字id] = nil
	elseif 序号 == 3756 then
		发送数据(玩家数据[数字id].连接id, 3513, 玩家数据[数字id].道具:索要道具5(数字id, "道具"))
		发送数据(玩家数据[数字id].连接id, 3523, {
			道具 = 玩家数据[数字id].道具:索要仓库道具(数字id, 1),
			道具仓库总数 = #玩家数据[数字id].角色.数据.道具仓库,
			召唤兽仓库总数 = #玩家数据[数字id].召唤兽仓库.数据
		})
	elseif 序号 == 3757 then
	elseif 序号 == 3757.1 then
		神秘宝箱[数字id] = nil
	elseif 序号 == 3758 then
	elseif 序号 == 3759 then
	elseif 序号 == 3767 then
		发送数据(玩家数据[数字id].连接id, 3548)
	elseif 序号 == 3768 then
		self:装备点化套装(连接id, 数字id, 数据)
	elseif 序号 == 3860 then
		local 对话 = "增加物品仓库数量需要支付" .. 仓库价格 .. "点仙玉，每增加一间仓库将额外消耗#R(已增加仓库数量*" .. 仓库价格 .. ")#W点仙玉。本次增加仓库需要消耗#R" .. (#玩家数据[数字id].角色.数据.道具仓库 - 3) * 仓库价格 + 仓库价格 .. "#W点仙玉，你是否需要进行购买仓库操作？"

		发送数据(玩家数据[数字id].连接id, 1501, {
			名称 = 玩家数据[数字id].角色.数据.名称,
			模型 = 玩家数据[数字id].角色.数据.模型,
			对话 = 对话,
			选项 = {
				"确定购买仓库",
				"让我再想想"
			}
		})
	elseif 序号 == 3861 then
		发送数据(玩家数据[数字id].连接id, 3513, 玩家数据[数字id].道具:索要道具5(数字id, 数据.道具类型))
		发送数据(连接id, 3525)
	elseif 序号 == 3803 then
		self:获取助战(连接id, 数字id)
	elseif 序号 == 3789 then
		玩家数据[数字id].道具:判断一键出售道具(连接id, 数字id)
	elseif 序号 == 3790.1 then
		self:整理背包仓库(数字id, "超级行囊", 数据.参数)
	elseif 序号 == 3790.2 then
		self:一键出售道具1(数字id, 数字id, nil, nil, 数据.类型, 数据.起始)
	elseif 序号 == 3790 then
		self:整理背包仓库(数字id, 数据.类型)
	elseif 序号 == 3791 then
		self:整理背包仓库(数字id, "仓库", 数据.道具类型)
	elseif 序号 == 3791.1 then
		self:整理背包仓库(数字id, "单页仓库", 数据.道具类型, 数据.仓库页数)
	elseif 序号 == 3773 then
		self:发送内充抽奖(连接id, 数字id, 数据)
	elseif 序号 == 3774 then
		self:抽取物品(连接id, 数字id, 数据)
	elseif 序号 == 3775 then
		self:领取内充银子(连接id, 数字id, 数据)
	elseif 序号 == 3776 then
		玩家数据[数字id].角色:更改角色名字(数字id, 数据)
	elseif 序号 == 3777 then
		玩家数据[数字id].角色:安全码验证(数字id, 数据)
	elseif 序号 == 3778 then
	elseif 序号 == 3800 then
		if 数据.类型 == "道具" then
			玩家数据[数字id].符石镶嵌 = 玩家数据[数字id].角色.数据.道具[数据.装备]
		else
			玩家数据[数字id].符石镶嵌 = 玩家数据[数字id].角色.数据.行囊[数据.装备]
		end

		发送数据(玩家数据[数字id].连接id, 3550, {
			装备 = self.数据[玩家数据[数字id].符石镶嵌]
		})
	elseif 序号 == 3801 then
		self:装备镶嵌符石(数字id, 数据.内容)
	elseif 序号 == 3802 then
		self:翻转星石对话(数字id)
	elseif 序号 == 3804 then
		self:合成符石(连接id, 数字id, 数据)
	elseif 序号 == 3805 then
		发送数据(玩家数据[数字id].连接id, 3552, {
			道具 = 玩家数据[数字id].道具:索要道具1(数字id)
		})
	elseif 序号 == 3810 then
		self:炼化铃铛(玩家数据[数字id].连接id, 数字id, 数据)
	elseif 序号 == 3811 then
		self:领取铃铛奖励(玩家数据[数字id].连接id, 数字id, 数据)
	end
end

function 道具处理类:领取铃铛奖励(连接id, 数字id, 数据)
	if 铃铛记录[数字id] == nil then
		常规提示(数字id, "该奖励已经被领取，请勿重复领取")
	end

	local 选中 = 数据.选中 + 0
	local 选中道具 = 铃铛记录[数字id][选中]

	玩家数据[数字id].道具:给予道具(数字id, 选中道具.名称, 选中道具.数量 or 1, 选中道具.阶品)

	铃铛记录[数字id] = nil

	常规提示(数字id, "恭喜你获得了#R" .. 选中道具.名称)

	if 选中道具.名称 == "高级魔兽要诀" or 选中道具.名称 == "特赦令牌" or 选中道具.名称 == "高级召唤兽内丹" or 选中道具.名称 == "九转金丹" or 选中道具.名称 == "神兜兜" then
		广播消息({
			频道 = "xt",
			内容 = format("#S(降妖伏魔)#Y恭喜玩家#R/%s#Y鸿运当头，在炼化铃铛时获得了珍贵的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[数字id].角色.数据.名称, 选中道具.名称)
		})
	end
end

function 道具处理类:炼化铃铛(连接id, 数字id, 数据)
	local 道具id = 数据.铃铛 + 0
	local 铃铛数量 = self.数据[道具id].数量
	local 铃铛炼化数 = 数据.类型 + 0

	if 铃铛数量 < 铃铛炼化数 then
		常规提示(数字id, "你没有那么多铃铛！")

		return
	end

	self.数据[道具id].数量 = self.数据[道具id].数量 - 铃铛炼化数
	local 临时数量 = self.数据[道具id].数量

	if self.数据[道具id].数量 < 1 then
		self.数据[道具id] = nil
	end

	道具刷新(数字id)
	self:刷新铃铛奖励(数字id, 数据.类型 + 0)
	发送数据(连接id, 3901, {
		物品id = 道具id,
		铃铛个数 = 临时数量,
		奖励数据 = 铃铛记录[数字id]
	})
end

function 道具处理类:刷新铃铛奖励(数字id, 铃铛数量)
	local x临时物品 = {}
	local id = 数字id + 0

	if 铃铛数量 == nil then
		铃铛记录[id] = x临时物品

		return
	end

	for i = 1, 10 do
		x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "魔兽要诀", 1)
		x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "藏宝图", 1)
		x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "青龙石", ygsj(铃铛数量 * 2))
		x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "玄武石", ygsj(铃铛数量 * 2))
		x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "朱雀石", ygsj(铃铛数量 * 2))
		x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "白虎石", ygsj(铃铛数量 * 2))
		x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "金银锦盒", ygsj(铃铛数量 * 2))
		x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "魔兽要诀", 1)
	end

	if 铃铛数量 >= 2 then
		for i = 1, 10 do
			x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "彩果", ygsj(math.floor(铃铛数量 / 2.5)))
			x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "金柳露", ygsj(铃铛数量))
		end

		for i = 1, 5 do
			x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "召唤兽内丹", 1)
			x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "超级金柳露", ygsj(math.floor(铃铛数量 / 2)))
		end
	end

	if 铃铛数量 >= 3 then
		for i = 1, 5 do
			x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "神兜兜", ygsj(math.floor(铃铛数量 / 2.5)))
			x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "召唤兽内丹", 1)
			x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "超级金柳露", ygsj(铃铛数量))
		end

		for i = 1, 10 do
			x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "九转金丹", ygsj(铃铛数量) * 60)
			x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "修炼果", 1)
		end
	end

	if 铃铛数量 >= 4 then
		for i = 1, 3 do
			x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "高级魔兽要诀", 1)
			x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "特赦令牌", 1)
		end
	end

	if 铃铛数量 >= 5 then
		for i = 1, 3 do
			x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "高级召唤兽内丹", 1)
		end

		x临时物品[#x临时物品 + 1] = 铃铛奖励生成(id, "百炼晶石碎片", 1)
	end

	随机排序(x临时物品)

	铃铛记录[id] = x临时物品
end

function 道具处理类:装备翻转星石(数字id)
	local id = 数字id + 0
	local 装备道具 = self.数据[玩家数据[id].符石镶嵌]

	if 装备道具 == nil then
		常规提示(id, "你没有这样的装备！")

		return
	elseif 装备道具.总类 ~= 2 or 装备道具.灵饰 or 装备道具.分类 == 9 or 装备道具.分类 == 8 or 装备道具.分类 == 7 then
		常规提示(id, "我这里目前只能点化人物装备的星位，其它的我可没那么大的能耐。")

		return
	elseif not 装备道具.星位组 or 装备道具.星位 == nil or 装备道具.星位[6] == nil then
		常规提示(id, "装备数据错误，请重新打开界面！")

		return
	end

	for n = 1, 6 do
		if 玩家数据[id].角色.数据.装备[n] == 玩家数据[id].符石镶嵌 then
			常规提示(id, "穿戴上的装备不能进行翻转")

			return
		end
	end

	if 玩家数据[id].角色:扣除体力(100, nil, 1) then
		if 装备道具.星位组 and 装备道具.星位 ~= nil and 装备道具.星位[6] ~= nil then
			if 装备道具.星位[6].阴阳 == 1 then
				装备道具.星位[6].阴阳 = 2
				装备道具.星位[6].颜色 = 取星位颜色(装备道具.分类)[2]
			else
				装备道具.星位[6].阴阳 = 1
				装备道具.星位[6].颜色 = 取星位颜色(装备道具.分类)[1]
			end

			装备道具.星位[6].相互 = nil
			local 等级计算 = 0

			for n = 1, 5 do
				if 装备道具.星位 ~= nil and 装备道具.星位[n] ~= nil then
					等级计算 = 等级计算 + 装备道具.星位[n].符石等级
				end
			end

			if 等级计算 ~= 0 then
				if 等级计算 % 2 == 0 then
					if 装备道具.星位[6].阴阳 == 2 then
						装备道具.星位[6].相互 = {
							[取星位相互(装备道具.分类)] = 2 * 符石属性倍率
						}
					end
				elseif 装备道具.星位[6].阴阳 == 1 then
					装备道具.星位[6].相互 = {
						[取星位相互(装备道具.分类)] = 2 * 符石属性倍率
					}
				end
			end
		end

		常规提示(id, "翻转星位成功。")
		道具刷新(id)
		玩家数据[id].角色:刷新信息()

		发送数据(玩家数据[id].连接id, 3503, 玩家数据[id].角色:取装备数据())
		发送数据(玩家数据[id].连接id, 3550, {
			装备 = 装备道具
		})
	else
		常规提示(id, "体力不足，无法翻转")
	end
end

function 道具处理类:翻转星石对话(id, 道具id)
	local 装备道具 = self.数据[玩家数据[id].符石镶嵌]

	if 装备道具 == nil then
		常规提示(id, "你没有这样的装备！")

		return
	elseif 装备道具.总类 ~= 2 or 装备道具.灵饰 or 装备道具.分类 == 9 or 装备道具.分类 == 8 or 装备道具.分类 == 7 then
		常规提示(id, "我这里目前只能点化人物装备的星位，其它的我可没那么大的能耐。")

		return
	elseif not 装备道具.星位组 or 装备道具.星位 == nil or 装备道具.星位[6] == nil then
		常规提示(id, "装备数据错误，请重新打开界面！")

		return
	end

	local 对话 = "#W/确定要将星石翻转吗？翻转星石不会引起星石自身属性变化，请放心操作。"
	local xx = {
		"消耗100体力进行翻转",
		"取消"
	}
	玩家数据[id].最后对话 = {
		名称 = "翻转星石",
		模型 = 玩家数据[id].角色.数据.模型
	}

	发送数据(玩家数据[id].连接id, 1501, {
		名称 = "翻转星石",
		模型 = 玩家数据[id].角色.数据.模型,
		对话 = 对话,
		选项 = xx
	})
end

function 道具处理类:合成符石(连接id, 数字id, 数据)
	local id = 数字id
	local 物品 = 数据.材料
	local 卷轴 = 0
	local 卷轴道具 = 0
	local 符石 = {}
	local 符石道具 = {}
	local f1 = 0
	local f2 = 0
	local f3 = 0
	local 玩家道具栏 = 玩家数据[id].角色.数据.道具
	local 道具格子 = 玩家数据[id].角色:取道具格子()

	if 道具格子 == 0 then
		常规提示(id, "你的道具栏已经满了,保留至少一格以上的位置进行合成哦")

		return
	end

	if 玩家数据[id].角色.数据.体力 < 40 then
		常规提示(id, "合成符石至少需要40点体力哦。")

		return
	end

	for k, v in pairs(物品) do
		if self.数据[玩家道具栏[v]] ~= nil and self.数据[玩家道具栏[v]].总类 == 889 and (self.数据[玩家道具栏[v]].分类 == 2 or self.数据[玩家道具栏[v]].分类 == 88) then
			if self.数据[玩家道具栏[v]].子类 == 6 then
				卷轴 = 玩家道具栏[v]
				卷轴道具 = v
			else
				符石[#符石 + 1] = 玩家道具栏[v]
				符石道具[#符石道具 + 1] = v

				if self.数据[符石[#符石]].子类 == 1 then
					f1 = f1 + 1
				elseif self.数据[符石[#符石]].子类 == 2 then
					f2 = f2 + 1
				elseif self.数据[符石[#符石]].子类 == 3 then
					f3 = f3 + 1
				end
			end
		else
			常规提示(id, "少侠，给的物品不对哦。")

			return
		end
	end

	local 是否合成 = false

	if f1 >= 1 and f1 + f2 == 3 and f3 == 0 and 卷轴 == 0 then
		是否合成 = 1
	elseif f2 >= 1 and f2 + f3 == 2 and 卷轴 ~= 0 and f1 == 0 then
		是否合成 = 2
	elseif f3 >= 2 and 卷轴 ~= 0 and f2 == 0 and f1 == 0 then
		是否合成 = 3
	elseif f3 >= 1 and f1 + f2 + f3 == 3 and 卷轴 ~= 0 then
		是否合成 = 4
	else
		常规提示(id, "请仔细查看放入的材料是否正确。")

		return
	end

	玩家数据[id].角色:扣除体力(40, nil, 1)

	local 概率范围 = 取随机数(1, 1000)

	if 是否合成 == 1 then
		local 成功率 = 800

		if 概率范围 <= 成功率 then
			for i = 1, #符石 do
				扣除背包位置道具(id, 符石道具[i], 1)
			end

			玩家数据[id].道具:给予道具(id, "未激活的符石", 2)
			常规提示(id, "合成成功")
		else
			for i = 1, #符石 do
				if ygsj() >= 50 then
					扣除背包位置道具(id, 符石道具[i], 1)

					break
				elseif i == #符石 then
					扣除背包位置道具(id, 符石道具[i], 1)

					break
				end
			end

			常规提示(id, "合成失败，你因此随机损失了一个符石")
		end
	elseif 是否合成 == 2 then
		local 成功率 = 600

		if 概率范围 <= 成功率 then
			for i = 1, #符石 do
				扣除背包位置道具(id, 符石道具[i], 1)
			end

			扣除背包位置道具(id, 卷轴道具, 1)
			玩家数据[id].道具:给予道具(id, "未激活的符石", 3)
			常规提示(id, "合成成功")
		else
			扣除背包位置道具(id, 卷轴道具, 1)
			常规提示(id, "合成失败，你因此损失了一个符石卷轴")
		end
	elseif 是否合成 == 3 then
		local 成功率 = 200

		if 概率范围 <= 成功率 then
			for i = 1, #符石 do
				扣除背包位置道具(id, 符石道具[i], 1)
			end

			扣除背包位置道具(id, 卷轴道具, 1)

			local 获取符石 = 新三级符石[取随机数(1, #新三级符石)]

			玩家数据[id].道具:给予道具(id, "未激活的符石", 3, 获取符石)
			常规提示(id, "合成成功")
		else
			扣除背包位置道具(id, 卷轴道具, 1)

			for i = 1, #符石 do
				if ygsj() >= 50 then
					扣除背包位置道具(id, 符石道具[i], 1)

					break
				elseif i == #符石 then
					扣除背包位置道具(id, 符石道具[i], 1)

					break
				end
			end

			常规提示(id, "合成失败，你因此损失了一个符石卷轴及一颗符石")
		end
	elseif 是否合成 == 4 then
		local 成功率 = 400

		if 概率范围 <= 成功率 then
			for i = 1, #符石 do
				扣除背包位置道具(id, 符石道具[i], 1)
			end

			扣除背包位置道具(id, 卷轴道具, 1)
			玩家数据[id].道具:给予道具(id, "未激活的星石")
			常规提示(id, "合成成功")
		else
			扣除背包位置道具(id, 卷轴道具, 1)
			常规提示(id, "合成失败，你因此损失了一个符石卷轴")
		end
	end
end

function 道具处理类:装备镶嵌符石(数字id, 数据)
	local id = 数字id + 0
	local 装备道具 = self.数据[玩家数据[id].符石镶嵌]
	local 符石操作序列 = 数据
	local 星石操作 = nil

	for n = 1, 6 do
		if 玩家数据[id].角色.数据.装备[n] == 玩家数据[id].符石镶嵌 then
			常规提示(id, "穿戴上的装备不能进行镶嵌")

			return
		end
	end

	if 装备道具 == nil then
		常规提示(id, "你没有这样的装备！")

		return
	elseif 装备道具.总类 ~= 2 or 装备道具.灵饰 or 装备道具.分类 == 9 or 装备道具.分类 == 8 or 装备道具.分类 == 7 then
		常规提示(id, "我这里目前只能点化人物装备的星位，其它的我可没那么大的能耐。")

		return
	end

	local 道具格子 = 0

	if not 判断是否为空表(符石操作序列) then
		local 重复 = false

		for k, v in pairs(符石操作序列) do
			if 重复 then
				break
			end

			if v.方式 == "镶嵌" then
				local 临时数据 = nil

				if v.背包类型 == "道具" then
					临时数据 = 玩家数据[数字id].角色.数据.道具[v.物品id]
				else
					常规提示(id, "镶嵌需要先将符石放入道具栏。")

					return
				end

				if self.数据[临时数据] == nil then
					常规提示(id, "道具数据异常，请重新打开界面进行操作。")

					return
				end

				if k <= 5 and (self.数据[临时数据].总类 ~= 889 or self.数据[临时数据].分类 ~= 88) then
					常规提示(id, "镶嵌需要符石，请给予我符石道具。")

					return
				elseif k == 6 and (self.数据[临时数据].总类 ~= 889 or self.数据[临时数据].分类 ~= 91) then
					常规提示(id, "镶嵌需要星石，请给予我星石道具。")

					return
				end

				for n, i in pairs(符石操作序列) do
					if k ~= n and i.方式 == "镶嵌" and v.背包类型 == i.背包类型 and v.物品id == i.物品id then
						重复 = true

						break
					end
				end
			end
		end

		if not 重复 then
			if 装备道具.星位 == nil then
				装备道具.星位 = {
					门派 = "无",
					部位 = "无",
					组合 = ""
				}
			end

			for k, v in pairs(符石操作序列) do
				if v.方式 == "扣除" then
					装备道具.星位[k] = nil
				elseif v.方式 == "镶嵌" then
					local 临时数据 = nil

					if v.背包类型 == "道具" then
						临时数据 = 玩家数据[数字id].角色.数据.道具[v.物品id]
					else
						临时数据 = 玩家数据[数字id].角色.数据.行囊[v.物品id]
					end

					道具格子 = v.物品id + 0

					if k == 6 then
						装备道具.星位[k] = {
							名称 = self.数据[临时数据].名称 .. "",
							颜色 = 取星位颜色(self.数据[临时数据].子类)[2],
							阴阳 = 2
						}
						local 临时属性 = 取星位属性(self.数据[临时数据].子类)
						装备道具.星位[k].符石属性 = {
							[临时属性.名称] = 临时属性.属性值
						}
					else
						装备道具.星位[k] = {
							颜色 = self.数据[临时数据].颜色 .. "",
							名称 = self.数据[临时数据].名称 .. "",
							符石属性 = DeepCopy(self.数据[临时数据].符石属性),
							符石等级 = self.数据[临时数据].子类 + 0
						}
					end

					扣除背包位置道具(id, 道具格子, 1)
				end
			end

			if 装备道具.星位组 and 装备道具.星位 ~= nil and 装备道具.星位[6] ~= nil then
				装备道具.星位[6].相互 = nil
				local 等级计算 = 0

				for n = 1, 5 do
					if 装备道具.星位 ~= nil and 装备道具.星位[n] ~= nil then
						等级计算 = 等级计算 + (装备道具.星位[n].符石等级 or 0)
					end
				end

				if 等级计算 ~= 0 then
					if 等级计算 % 2 == 0 then
						if 装备道具.星位[6].阴阳 == 2 then
							装备道具.星位[6].相互 = {
								[取星位相互(装备道具.分类)] = 2
							}
						end
					elseif 装备道具.星位[6].阴阳 == 1 then
						装备道具.星位[6].相互 = {
							[取星位相互(装备道具.分类)] = 2
						}
					end
				end
			end

			常规提示(id, "镶嵌成功。")

			local 星位数据 = 取星位组合(装备道具.星位)

			if 星位数据 ~= nil then
				装备道具.星位.组合 = 星位数据.组合
				装备道具.星位.部位 = 星位数据.部位
				装备道具.星位.门派 = 星位数据.门派
				装备道具.星位.组合等级 = 星位数据.等级

				常规提示(id, "#Y你的这件装备似乎开启了神秘的力量")
			else
				装备道具.星位.组合 = nil
				装备道具.星位.部位 = nil
				装备道具.星位.门派 = nil
				装备道具.星位.组合等级 = nil
			end

			if 符石操作序列[6] ~= nil then
				星石操作 = true
			end

			道具刷新(id)
			玩家数据[id].角色:刷新信息()
			发送数据(玩家数据[id].连接id, 3550, {
				装备 = 装备道具,
				星石操作 = 星石操作
			})
		else
			常规提示(id, "道具数据异常，请重新打开界面进行操作。")

			return
		end
	else
		常规提示(id, "道具数据异常，请重新打开界面进行操作。")

		return
	end
end

function 道具处理类:抽取物品(连接id, 数字id, 数据)
	local 道具格子 = 玩家数据[数字id].角色:取道具格子()

	if 道具格子 == 0 then
		常规提示(数字id, "您的道具栏物品已经满啦,请先清理包裹")

		return
	end

	local 剩余物品个数 = 0
	local 抽到序号 = 0

	if 玩家数据[数字id].角色.数据.银子 < 5000000 then
		常规提示(数字id, "您的余额已不足5000000银子，不能进行抽奖")

		return
	end

	for n, v in pairs(内充抽奖) do
		剩余物品个数 = 剩余物品个数 + 1
	end

	if 剩余物品个数 >= 1 then
		local 物品编号 = 取随机数(1, 剩余物品个数)

		for i, v in pairs(内充抽奖) do
			抽到序号 = 抽到序号 + 1

			if 抽到序号 == 物品编号 then
				if 宝石列表1[内充抽奖[i]] ~= nil then
					local 名称 = 内充抽奖[i]
					local 随机数 = 取随机数(1, 5)

					玩家数据[数字id].道具:给予道具(数字id, 名称, 随机数)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 随机数 .. "级" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#1")
					})
				elseif 内充抽奖[i] == "洗魂符" then
					local 名称 = "洗魂符"

					玩家数据[数字id].道具:给予道具(数字id, "洗魂符", 1, true)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#3")
					})
				elseif 内充抽奖[i] == "洗骨符" then
					local 名称 = "洗骨符"

					玩家数据[数字id].道具:给予道具(数字id, "洗骨符", 1, true)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#4")
					})
				elseif 内充抽奖[i] == "避水珠" then
					local 名称 = "避水珠"

					玩家数据[数字id].道具:给予道具(数字id, 名称, 1)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#5")
					})
				elseif 内充抽奖[i] == "定魂珠" then
					local 名称 = "定魂珠"

					玩家数据[数字id].道具:给予道具(数字id, 名称, 1)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#6")
					})
				elseif 内充抽奖[i] == "龙鳞" then
					local 名称 = "龙鳞"

					玩家数据[数字id].道具:给予道具(数字id, 名称, 1)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#7")
					})
				elseif 内充抽奖[i] == "金刚石" then
					local 名称 = "金刚石"

					玩家数据[数字id].道具:给予道具(数字id, 名称, 1)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#8")
					})
				elseif 内充抽奖[i] == "夜光珠" then
					local 名称 = "夜光珠"

					玩家数据[数字id].道具:给予道具(数字id, 名称, 1)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#9")
					})
				elseif 内充抽奖[i] == "小额银票" then
					local 名称 = "小额银票"

					玩家数据[数字id].道具:给予道具(数字id, 名称)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#10")
					})
				elseif 内充抽奖[i] == "大额银票" then
					local 名称 = "大额银票"

					玩家数据[数字id].道具:给予道具(数字id, 名称)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#11")
					})
				elseif 内充抽奖[i] == "双倍经验丹" then
					local 名称 = "双倍经验丹"

					玩家数据[数字id].道具:给予道具(数字id, 名称, 1)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#12")
					})
				elseif 内充抽奖[i] == "储灵袋" then
					local 名称 = "储灵袋"

					玩家数据[数字id].道具:给予道具(数字id, "储灵袋")
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#13")
					})
				elseif 内充抽奖[i] == "金柳露" then
					local 名称 = "金柳露"

					玩家数据[数字id].道具:给予道具(数字id, "金柳露", 1)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#14")
					})
				elseif 内充抽奖[i] == "超级金柳露" then
					local 名称 = "超级金柳露"

					玩家数据[数字id].道具:给予道具(数字id, "超级金柳露", 1)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#15")
					})
				elseif 内充抽奖[i] == "附魔宝珠" then
					local 名称 = "附魔宝珠"

					玩家数据[数字id].道具:给予道具(数字id, "附魔宝珠", 1, 1)
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#16")
					})
				elseif 内充抽奖[i] == "高级藏宝图" then
					local 名称 = "高级藏宝图"

					玩家数据[数字id].道具:给予道具(数字id, "高级藏宝图")
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#17")
					})
				elseif 内充抽奖[i] == "万年·魂骨" then
					local 名称 = "万年·魂环"

					self:给予道具(数字id, "万年·魂骨", 1, "魂骨")
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#18")
					})
				elseif 内充抽奖[i] == "十万年·魂骨" then
					local 名称 = "十万年·魂骨"

					self:给予道具(数字id, "十万年·魂骨", 1, "魂骨")
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#19")
					})
				elseif 内充抽奖[i] == "百万年·魂骨" then
					local 名称 = "百万年·魂骨"

					self:给予道具(数字id, "百万年·魂骨", 1, "魂骨")
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "抽奖获得" .. 名称 .. "奖池物品剩余" .. 剩余物品个数 .. "个#20")
					})
				elseif 内充抽奖[i] == "神级·魂骨" then
					local 名称 = "神级·魂骨"

					self:给予道具(数字id, "神级·魂骨", 1, "魂骨")
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "抽奖获得" .. 名称 .. "奖池物品剩余" .. 剩余物品个数 .. "个#21")
					})
				elseif 内充抽奖[i] == "万年·魂环" then
					local 名称 = "万年·魂环"

					self:给予道具(数字id, "万年·魂环", 1, "魂环")
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#22")
					})
				elseif 内充抽奖[i] == "十万年·魂环" then
					local 名称 = "十万年·魂环"

					self:给予道具(数字id, "十万年·魂环", 1, "魂环")
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#23")
					})
				elseif 内充抽奖[i] == "百万年·魂环" then
					local 名称 = "百万年·魂环"

					self:给予道具(数字id, "百万年·魂环", 1, "魂环")
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "抽奖获得" .. 名称 .. "奖池物品剩余" .. 剩余物品个数 .. "个#24")
					})
				elseif 内充抽奖[i] == "神级·魂环" then
					local 名称 = "神级·魂环"

					self:给予道具(数字id, "神级·魂环", 1, "魂环")
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "抽奖获得" .. 名称 .. "奖池物品剩余" .. 剩余物品个数 .. "个#25")
					})
				elseif 内充抽奖[i] == "钟灵石" then
					local 名称 = "钟灵石"
					local 取随机数 = 取随机数(1, 3)

					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					玩家数据[数字id].道具:给予道具(数字id, 名称, 随机数)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "#Y抽奖获得#G" .. 随机数 .. "级" .. 名称 .. "#Y奖池物品剩余#R" .. 剩余物品个数 .. "个#26")
					})
				elseif 内充抽奖[i] == "混元一气甲" then
					local 名称 = "装备"

					礼包奖励类:取随机装备(数字id, 160, "无级别限制")
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "抽奖获得" .. 名称 .. "奖池物品剩余" .. 剩余物品个数 .. "个#27")
					})
				elseif 内充抽奖[i] == "星瀚" then
					local 名称 = "武器"

					礼包奖励类:取随机武器(数字id, 160, "无级别限制")
					常规提示(数字id, "恭喜你抽奖获得：" .. 名称)
					广播消息({
						频道 = "sj",
						内容 = format("#R【抽奖系统】#Y玩家：#R/" .. 玩家数据[数字id].角色.数据.名称 .. "抽奖获得" .. 名称 .. "奖池物品剩余#R" .. 剩余物品个数 .. "个#28")
					})
				end

				内充抽奖[i] = nil
				剩余物品个数 = 剩余物品个数 - 1
				玩家数据[数字id].角色.数据.银子 = 玩家数据[数字id].角色.数据.银子 - 5000000

				if 剩余物品个数 <= 1 then
					内充抽奖 = {
						"太阳石",
						"太阳石",
						"太阳石",
						"红玛瑙",
						"红玛瑙",
						"月亮石",
						"月亮石",
						"月亮石",
						"黑宝石",
						"黑宝石",
						"黑宝石",
						"光芒石",
						"光芒石",
						"光芒石",
						"舍利子",
						"舍利子",
						"舍利子",
						"神秘石",
						"神秘石",
						"神秘石",
						"星辉石",
						"星辉石",
						"星辉石",
						"星辉石",
						"星辉石",
						"星辉石",
						"避水珠",
						"避水珠",
						"避水珠",
						"避水珠",
						"定魂珠",
						"定魂珠",
						"定魂珠",
						"定魂珠",
						"龙鳞",
						"龙鳞",
						"龙鳞",
						"龙鳞",
						"金刚石",
						"金刚石",
						"金刚石",
						"金刚石",
						"夜光珠",
						"夜光珠",
						"夜光珠",
						"夜光珠",
						"小额银票",
						"小额银票",
						"小额银票",
						"小额银票",
						"大额银票",
						"大额银票",
						"大额银票",
						"大额银票",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"附魔宝珠",
						"附魔宝珠",
						"附魔宝珠",
						"附魔宝珠",
						"金柳露",
						"金柳露",
						"金柳露",
						"金柳露",
						"超级金柳露",
						"超级金柳露",
						"超级金柳露",
						"附魔宝珠",
						"附魔宝珠",
						"附魔宝珠",
						"附魔宝珠",
						"附魔宝珠",
						"附魔宝珠",
						"附魔宝珠",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"高级藏宝图",
						"高级藏宝图",
						"高级藏宝图",
						"高级藏宝图",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"双倍经验丹",
						"附魔宝珠",
						"附魔宝珠"
					}

					发送数据(连接id, 135.1, {
						内充抽奖 = 内充抽奖,
						银子 = 玩家数据[数字id].角色.数据.银子
					})
					常规提示(数字id, "奖池已经刷新")

					return
				end
			end
		end
	end

	发送数据(连接id, 135.1, {
		内充抽奖 = 内充抽奖,
		银子 = 玩家数据[数字id].角色.数据.银子
	})
end

function 道具处理类:发送内充抽奖(连接id, 数字id, 数据)
	if 玩家数据[数字id].角色.数据.银子 == nil then
		玩家数据[数字id].角色.数据.银子 = {
			累积 = 0,
			当前 = 0
		}
	end

	发送数据(连接id, 135, {
		内充抽奖 = 内充抽奖,
		银子 = 玩家数据[数字id].角色.数据.银子
	})
end

function 道具处理类:领取内充银子(连接id, 数字id, 数据)
	if 玩家数据[数字id].角色.数据.银子.累积 == nil then
		玩家数据[数字id].角色.数据.银子 = {
			累积 = 0,
			当前 = 0
		}
	end

	玩家数据[数字id].角色.数据.银子.累积 = 玩家数据[数字id].角色.数据.元宝.内充
	local 累充记录数值 = f函数.读配置(程序目录 .. "neichong/" .. 数字id .. ".ini", "充值数据", "累计") + 0
	local 本次充值银子 = 累充记录数值 - 玩家数据[数字id].角色.数据.银子.累积

	if 本次充值银子 <= 0 then
		常规提示(玩家数据[数字id].角色.数据.数字id, "阁下没有进行充值，无法领取银子")

		return
	end

	if 玩家数据[数字id].角色.数据.银子.累积 < 累充记录数值 then
		玩家数据[数字id].角色.数据.银子 = 玩家数据[数字id].角色.数据.银子 + 本次充值银子
		玩家数据[数字id].角色.数据.银子.累积 = 玩家数据[数字id].角色.数据.银子.累积 + 本次充值银子
		玩家数据[数字id].角色.数据.元宝.内充 = 累充记录数值

		常规提示(玩家数据[数字id].角色.数据.数字id, "本次充值#R" .. 本次充值银子 .. "银子")
		发送数据(连接id, 7012, {
			内充抽奖 = 内充抽奖,
			银子 = 玩家数据[数字id].角色.数据.银子
		})
	else
		常规提示(玩家数据[数字id].角色.数据.数字id, "阁下没有进行充值，无法领取银子")
	end
end

function 道具处理类:恢复物品(id)
	local num = 0
	local 页数 = 1

	for k, v in pairs(self.数据) do
		local 物品id = k
		local 是否可用 = true

		for a, b in pairs(玩家数据[id].角色.数据.道具) do
			if b == 物品id then
				是否可用 = false
			end
		end

		for a, b in pairs(玩家数据[id].角色.数据.行囊) do
			if b == 物品id then
				是否可用 = false
			end
		end

		for a, b in pairs(玩家数据[id].角色.数据.法宝) do
			if b == 物品id then
				是否可用 = false
			end
		end

		if 是否可用 then
			num = num + 1
			玩家数据[id].角色.数据.道具仓库[页数][num] = 物品id

			if num == 20 then
				num = 0
				页数 = 页数 + 1
			end
		end
	end

	常规提示(id, "恢复成功请检查~")
end

function 道具处理类:判断强化石(数据, id)
	local 临时列表 = {
		玄武石 = 0,
		朱雀石 = 0,
		白虎石 = 0,
		青龙石 = 0
	}

	for i = 1, 100 do
		local aa = 玩家数据[id].角色.数据.道具[i]

		if aa ~= nil and self.数据[aa] ~= nil and 临时列表[self.数据[aa].名称] ~= nil then
			临时列表[self.数据[aa].名称] = 临时列表[self.数据[aa].名称] + (self.数据[aa].数量 or 1)
		end
	end

	for i = 1, 4 do
		if 临时列表[强化石列表[i]] < (数据[强化石列表[i]] or 0) then
			return false
		end
	end

	return true
end

function 道具处理类:装备点化套装(连接id, 数字id, 数据)
	local 强化石 = {
		"青龙石",
		"朱雀石",
		"玄武石",
		"白虎石"
	}
	local 套装类型 = 数据.套装
	local 宝珠id = 数据.宝珠数据
	local id = 数字id
	local 装备编号 = 玩家数据[id].角色.数据.道具[数据.装备]
	local 装备等级 = self.数据[装备编号].级别限制
	local 消耗石头 = self.数据[装备编号].分类
	local 强化石数据 = {
		玄武石 = 0,
		朱雀石 = 0,
		白虎石 = 0,
		青龙石 = 0
	}

	if 消耗石头 == 5 or 消耗石头 == 6 then
		消耗石头 = 3
	end

	强化石数据[强化石[消耗石头]] = math.floor(装备等级 / 10)

	if 数据.装备 == nil or 数据.套装 == 0 or 数据.套装 == nil then
		常规提示(id, "道具数据异常，请重新打开界面进行操作。")

		return
	end

	if self.数据[宝珠id] == nil and self.数据[宝珠id].名称 ~= "附魔宝珠" then
		常规提示(id, "道具数据异常，请重新打开界面进行操作。")

		return
	end

	if 玩家数据[id].角色.数据.当前经验 < 装备等级 * 3000 then
		常规提示(id, "您的经验不足，无法进行点化。")

		return
	end

	if 玩家数据[id].角色.数据.银子 < 装备等级 * 5000 then
		常规提示(id, "您的银子不足，无法进行点化。")

		return
	end

	if self:判断强化石(强化石数据, id) == false then
		常规提示(id, "您的" .. 强化石[消耗石头] .. "不足，无法进行点化。")

		return
	end

	if self.数据[装备编号].祈福值 == nil or self.数据[装备编号].祈福值 == 0 or self.数据[装备编号].祈福值 < 30 then
		if self.数据[宝珠id].数量 - 1 <= 0 then
			self.数据[宝珠id] = nil

			for i = 1, 100 do
				if 宝珠id == i then
					i = nil

					break
				end
			end

			发送数据(连接id, 3549)
		else
			self.数据[宝珠id].数量 = self.数据[宝珠id].数量 - 1
		end

		扣除多个道具(id, 强化石数据)

		if 套装类型 == 1 then
			local 随机动物套 = 取所有动物套[取随机数(1, #取所有动物套)]
			self.数据[装备编号].套装效果 = {
				"变身术之",
				随机动物套
			}
		elseif 套装类型 == 2 then
			local 套装类型 = "追加法术"
			local 套装效果 = {
				追加法术 = 装备套装法术列表
			}
			local aa = ""

			if self.数据[装备编号].套装效果 ~= nil and self.数据[装备编号].套装效果[2] ~= nil then
				aa = self.数据[装备编号].套装效果[2] .. ""
			end

			local tz = 套装效果[套装类型][取随机数(1, #套装效果[套装类型])]

			while aa == tz do
				tz = 套装效果[套装类型][取随机数(1, #套装效果[套装类型])]
			end

			self.数据[装备编号].套装效果 = {
				套装类型,
				tz
			}
		elseif 套装类型 == 4 then
			local 套装类型 = "附加状态"
			local 套装效果 = {
				附加状态 = 装备套装状态列表
			}
			local aa = ""

			if self.数据[装备编号].套装效果 ~= nil and self.数据[装备编号].套装效果[2] ~= nil then
				aa = self.数据[装备编号].套装效果[2] .. ""
			end

			local tz = 套装效果[套装类型][取随机数(1, #套装效果[套装类型])]

			while aa == tz do
				tz = 套装效果[套装类型][取随机数(1, #套装效果[套装类型])]
			end

			self.数据[装备编号].套装效果 = {
				套装类型,
				tz
			}
		end

		if self.数据[装备编号].祈福值 == nil then
			self.数据[装备编号].祈福值 = 0
		end

		self.数据[装备编号].祈福值 = self.数据[装备编号].祈福值 + 1

		玩家数据[id].角色:扣除经验(装备等级 * 3000, "点化套装", 1)
		玩家数据[id].角色:扣除银子(装备等级 * 5000, 0, 0, "点化套装", 1)
		常规提示(id, "#R" .. self.数据[装备编号].名称 .. "#Y附魔【#G" .. self.数据[装备编号].套装效果[1] .. "#Y】#P" .. self.数据[装备编号].套装效果[2] .. "#Y点化成功！")
		刷新道具行囊单格(id, "道具", 数据.装备, 装备编号)
		刷新道具行囊单格(id, "道具", 数据.宝珠, 宝珠id)
		道具刷新(id, 1)
	else
		local 套装类型名称 = "变身术"
		local 选项 = {}

		if 套装类型 == 1 then
			for n = 1, #取所有动物套 do
				table.insert(选项, 取所有动物套[n])
			end
		elseif 套装类型 == 2 then
			套装类型名称 = "追加法术"
			追加法术 = 装备套装法术列表

			for n = 1, #追加法术 do
				table.insert(选项, 追加法术[n])
			end
		elseif 套装类型 == 4 then
			套装类型名称 = "附加状态"
			附加状态 = 装备套装状态列表

			for n = 1, #附加状态 do
				table.insert(选项, 附加状态[n])
			end
		end

		table.insert(选项, "我暂时先不点化了")

		local 对话 = "装备祈福值已满，您可以选择一个自己想要的套装效果进行祈福：(正在点化：#Z/" .. 套装类型名称 .. "#W/)"
		玩家数据[数字id].点化套装数据 = 数据

		发送数据(玩家数据[数字id].连接id, 1501, {
			名称 = "点化装备套装",
			模型 = 玩家数据[数字id].角色.数据.模型,
			对话 = 对话,
			选项 = 选项
		})
	end
end

角色追加法术概率 = {
	知己知彼 = {
		20,
		50
	},
	镇妖 = {
		5,
		20
	},
	百万神兵 = {
		5,
		20
	},
	魔音摄魂 = {
		5,
		20
	},
	含情脉脉 = {
		4,
		15
	},
	威慑 = {
		4,
		15
	},
	催眠符 = {
		4,
		15
	},
	失心符 = {
		4,
		15
	},
	落魄符 = {
		4,
		15
	},
	定身符 = {
		4,
		15
	},
	满天花雨 = {
		10,
		30
	},
	似玉生香 = {
		4,
		15
	},
	尸腐毒 = {
		6,
		20
	},
	勾魂 = {
		6,
		20
	},
	摄魄 = {
		6,
		20
	},
	姐妹同心 = {
		6,
		20
	},
	唧唧歪歪 = {
		10,
		30
	},
	龙卷雨击 = {
		10,
		30
	},
	龙腾 = {
		6,
		20
	},
	龙吟 = {
		6,
		20
	},
	五雷咒 = {
		6,
		20
	},
	飞砂走石 = {
		6,
		20
	},
	三昧真火 = {
		6,
		20
	},
	阎罗令 = {
		6,
		20
	},
	判官令 = {
		6,
		20
	},
	紧箍咒 = {
		6,
		20
	},
	日光华 = {
		6,
		20
	},
	靛沧海 = {
		6,
		20
	},
	巨岩破 = {
		6,
		20
	},
	苍茫树 = {
		6,
		20
	},
	地裂火 = {
		6,
		20
	},
	后发制人 = {
		4,
		15
	},
	横扫千军 = {
		4,
		15
	},
	日月乾坤 = {
		4,
		15
	},
	无敌牛虱 = {
		10,
		30
	},
	落叶萧萧 = {
		10,
		30
	},
	尘土刃 = {
		10,
		30
	},
	荆棘舞 = {
		10,
		30
	},
	冰川怒 = {
		10,
		30
	},
	夺命咒 = {
		10,
		30
	},
	夺魄令 = {
		10,
		30
	},
	浪涌 = {
		10,
		30
	},
	裂石 = {
		10,
		30
	},
	当头一棒 = {
		4,
		10
	},
	神针撼海 = {
		4,
		20
	},
	雷击 = {
		15,
		40
	},
	落岩 = {
		15,
		40
	},
	水攻 = {
		15,
		40
	},
	烈火 = {
		15,
		40
	},
	奔雷咒 = {
		10,
		30
	},
	泰山压顶 = {
		10,
		30
	},
	水漫金山 = {
		10,
		30
	},
	地狱烈火 = {
		10,
		30
	}
}
装备套装法术列表 = {
	"知己知彼",
	"镇妖",
	"百万神兵",
	"魔音摄魂",
	"含情脉脉",
	"威慑",
	"催眠符",
	"失心符",
	"落魄符",
	"定身符",
	"满天花雨",
	"似玉生香",
	"尸腐毒",
	"勾魂",
	"摄魄",
	"姐妹同心",
	"唧唧歪歪",
	"龙卷雨击",
	"龙腾",
	"龙吟",
	"五雷咒",
	"飞砂走石",
	"三昧真火",
	"阎罗令",
	"判官令",
	"紧箍咒",
	"日光华",
	"靛沧海",
	"巨岩破",
	"苍茫树",
	"地裂火",
	"后发制人",
	"横扫千军",
	"日月乾坤",
	"无敌牛虱",
	"落叶萧萧",
	"尘土刃",
	"荆棘舞",
	"冰川怒",
	"夺命咒",
	"夺魄令",
	"浪涌",
	"裂石",
	"当头一棒",
	"神针撼海",
	"雷击",
	"落岩",
	"水攻",
	"烈火",
	"奔雷咒",
	"泰山压顶",
	"水漫金山",
	"地狱烈火"
}
装备套装法术列表1 = {
	龙腾 = 1,
	判官令 = 1,
	知己知彼 = 1,
	裂石 = 1,
	苍茫树 = 1,
	紧箍咒 = 1,
	横扫千军 = 1,
	日月乾坤 = 1,
	三昧真火 = 1,
	地狱烈火 = 1,
	飞砂走石 = 1,
	落叶萧萧 = 1,
	尘土刃 = 1,
	荆棘舞 = 1,
	阎罗令 = 1,
	后发制人 = 1,
	夺命咒 = 1,
	失心符 = 1,
	定身符 = 1,
	摄魄 = 1,
	夺魄令 = 1,
	浪涌 = 1,
	落魄符 = 1,
	威慑 = 1,
	当头一棒 = 1,
	神针撼海 = 1,
	巨岩破 = 1,
	雷击 = 1,
	百万神兵 = 1,
	姐妹同心 = 1,
	五雷咒 = 1,
	烈火 = 1,
	魔音摄魂 = 1,
	落岩 = 1,
	泰山压顶 = 1,
	地裂火 = 1,
	日光华 = 1,
	水漫金山 = 1,
	似玉生香 = 1,
	满天花雨 = 1,
	靛沧海 = 1,
	镇妖 = 1,
	龙吟 = 1,
	尸腐毒 = 1,
	奔雷咒 = 1,
	无敌牛虱 = 1,
	水攻 = 1,
	勾魂 = 1,
	冰川怒 = 1,
	催眠符 = 1,
	唧唧歪歪 = 1,
	龙卷雨击 = 1,
	含情脉脉 = 1
}
角色附加状态回合 = {
	盘丝阵 = {
		5,
		9
	},
	定心术 = {
		5,
		9
	},
	极度疯狂 = {
		5,
		9
	},
	金刚护法 = {
		5,
		9
	},
	逆鳞 = {
		5,
		9
	},
	生命之泉 = {
		5,
		9
	},
	魔王回首 = {
		5,
		9
	},
	幽冥鬼眼 = {
		5,
		9
	},
	百毒不侵 = {
		5,
		9
	},
	变身 = {
		5,
		9
	},
	普渡众生 = {
		5,
		9
	},
	炼气化神 = {
		5,
		9
	},
	杀气诀 = {
		5,
		9
	},
	一苇渡江 = {
		5,
		9
	},
	碎星诀 = {
		5,
		9
	},
	明光宝烛 = {
		5,
		9
	},
	楚楚可怜 = {
		3,
		6
	},
	修罗隐身 = {
		3,
		6
	}
}
装备套装状态列表 = {
	"盘丝阵",
	"定心术",
	"极度疯狂",
	"金刚护法",
	"逆鳞",
	"生命之泉",
	"魔王回首",
	"幽冥鬼眼",
	"百毒不侵",
	"变身",
	"普渡众生",
	"炼气化神",
	"杀气诀",
	"一苇渡江",
	"碎星诀",
	"明光宝烛",
	"楚楚可怜",
	"修罗隐身"
}
装备套装状态列表1 = {
	变身 = 1,
	极度疯狂 = 1,
	楚楚可怜 = 1,
	炼气化神 = 1,
	百毒不侵 = 1,
	修罗隐身 = 1,
	逆鳞 = 1,
	明光宝烛 = 1,
	一苇渡江 = 1,
	碎星诀 = 1,
	幽冥鬼眼 = 1,
	杀气诀 = 1,
	生命之泉 = 1,
	魔王回首 = 1,
	金刚护法 = 1,
	普渡众生 = 1,
	定心术 = 1,
	盘丝阵 = 1
}

function 道具处理类:判断一键出售道具(连接id, id)
	local 对话 = "在线回收能一键回收道具行囊#G第一页#W最多#R20#W个道具。"
	local 选项 = {
		"确认一键回收",
		"算了我在想想"
	}

	发送数据(玩家数据[id].连接id, 1501, {
		名称 = "专业回收",
		模型 = 玩家数据[id].角色.数据.模型,
		对话 = 对话,
		选项 = 选项
	})
end

function 道具处理类:一键回收跑商物品(连接id, id)
	for n = 1, 100 do
		local 道具id = 玩家数据[id].角色.数据.道具[n]

		if 道具id ~= nil and (self.数据[道具id].名称 == "商品棉布" or self.数据[道具id].名称 == "商品佛珠" or self.数据[道具id].名称 == "商品扇子" or self.数据[道具id].名称 == "商品武器" or self.数据[道具id].名称 == "商品纸钱" or self.数据[道具id].名称 == "商品帽子" or self.数据[道具id].名称 == "商品木材" or self.数据[道具id].名称 == "商品人参" or self.数据[道具id].名称 == "商品夜明珠" or self.数据[道具id].名称 == "商品盐" or self.数据[道具id].名称 == "商品鹿茸" or self.数据[道具id].名称 == "商品铃铛" or self.数据[道具id].名称 == "商品首饰" or self.数据[道具id].名称 == "商品蜡烛" or self.数据[道具id].名称 == "商品面粉" or self.数据[道具id].名称 == "商品香油" or self.数据[道具id].名称 == "商品珍珠" or self.数据[道具id].名称 == "商品酒" or self.数据[道具id].名称 == "商品符" or self.数据[道具id].名称 == "商品麻线") then
			self.数据[玩家数据[id].角色.数据.道具[n]] = nil
			玩家数据[id].角色.数据.道具[n] = nil

			发送数据(连接id, 3800)
			刷新道具行囊单格(id, "道具", n, nil)
		end
	end
end

function 道具处理类:获取助战(连接id, id)
	玩家数据[id].角色.数据.对话类型 = "获取助战"
	local aa = "欢迎使用自动获取助战功能、请选择获取助战的方式"
	local xx = {
		"获取随机助战",
		"获取指定助战",
		"关闭对话"
	}

	发送数据(连接id, 1501, {
		名称 = "明夜西游",
		模型 = "影精灵",
		对话 = aa,
		选项 = xx
	})
end

function 道具处理类:摊位下架商品(连接id, id, 数据)
	if 玩家数据[id].摊位数据 == nil then
		return
	end

	if 数据.bb == nil then
		玩家数据[id].摊位数据.道具[数据.道具 + 0] = nil

		常规提示(id, "#Y/下架物品成功！")
	elseif 数据.道具 == nil then
		local 编号 = 数据.bb + 0
		玩家数据[id].摊位数据.bb[编号] = nil

		常规提示(id, "#Y/下架召唤兽成功！")
	end

	玩家数据[id].摊位数据.更新 = os.time()

	self:索要摊位数据(连接id, id, 3517)
end

function 道具处理类:使用合成旗(连接id, id, 序列)
	if 玩家数据[id].道具操作 == nil then
		return
	end

	local 编号 = 玩家数据[id].道具操作.编号
	local 道具id = 玩家数据[id].角色.数据[玩家数据[id].道具操作.类型][编号]

	if 道具id == nil or self.数据[道具id] == nil or self.数据[道具id].总类 ~= 11 or self.数据[道具id].分类 ~= 2 then
		常规提示(id, "#Y你没有这样的道具")

		return
	elseif self.数据[道具id].xy[序列] == nil then
		常规提示(id, "#Y错误的坐标选择点")

		return
	elseif self:取飞行限制(id) then
		return
	end

	self.数据[道具id].次数 = self.数据[道具id].次数 - 1

	if self.数据[道具id].次数 <= 0 then
		玩家数据[id].角色.数据[玩家数据[id].道具操作.类型][编号] = nil

		常规提示(id, format("#Y你的%s已经用完了", self.数据[道具id].名称))

		self.数据[道具id] = nil
	else
		地图处理类:跳转地图(id, self.数据[道具id].地图, self.数据[道具id].xy[序列].x, self.数据[道具id].xy[序列].y)
		常规提示(id, format("#Y你的%s还可以使用%s次", self.数据[道具id].名称, self.数据[道具id].次数))
	end

	刷新道具行囊单格(id, 玩家数据[id].道具操作.类型, 编号, 道具id)

	玩家数据[id].道具操作 = nil
end

function 道具处理类:法宝合成(连接id, id, 数据)
	local 道具id = 分割文本(数据.序列, ",")
	local 临时id = {}
	local 找到内丹 = false
	local 合成费用 = 2000000
	local 合成体力 = 100

	if f函数.读配置(程序目录 .. "data\\" .. 玩家数据[id].账号 .. "\\账号信息.txt", "账号配置", "完成法宝任务") == nil then
		f函数.写配置(程序目录 .. "data\\" .. 玩家数据[id].账号 .. "\\账号信息.txt", "账号配置", "完成法宝任务", "0")
	end

	if f函数.读配置(程序目录 .. "data\\" .. 玩家数据[id].账号 .. "\\账号信息.txt", "账号配置", "完成法宝任务") == "1" then
		常规提示(id, "少侠您已经完成了法宝合成,点我完成法宝任务吧#86")

		return
	end

	if 取银子(id) < 合成费用 then
		常规提示(id, "你银子不够200万")

		return
	end

	if 玩家数据[id].角色.数据.体力 < 合成体力 then
		常规提示(id, "你体力不够100点")

		return
	end

	for i = 1, 5 do
		道具id[i] = 道具id[i] + 0
		临时id[i] = 玩家数据[id].角色.数据.道具[道具id[i]]

		if self.数据[临时id[i]] ~= nil and 道具id[i] ~= 0 and self.数据[临时id[i]].名称 == "内丹" then
			找到内丹 = true
		end
	end

	if 找到内丹 then
		玩家数据[id].角色:扣除银子(合成费用, 0, 0, "法宝合成", 1)

		玩家数据[id].角色.数据.体力 = 玩家数据[id].角色.数据.体力 - 合成体力

		for i = 1, 5 do
			道具id[i] = 道具id[i] + 0
			临时id[i] = 玩家数据[id].角色.数据.道具[道具id[i]]

			if self.数据[临时id[i]] ~= nil and 道具id[i] ~= 0 then
				self.数据[临时id[i]] = nil
			end
		end

		f函数.写配置(程序目录 .. "data\\" .. 玩家数据[id].账号 .. "\\账号信息.txt", "账号配置", "完成法宝任务", 1)
		常规提示(id, "恭喜少侠完成了法宝合成，请在此点击我选择完成法宝任务领取法宝哦")
		道具刷新(id)
	else
		常规提示(id, "缺少内丹材料，无法合成！")

		return
	end
end

function 道具处理类:添加装备临时效果(id, 道具id, 附魔属性, 附魔数值, 指定数据)
	local 到期时间 = os.time() + 604800

	if self.数据[道具id].临时附魔 == nil then
		self.数据[道具id].临时附魔 = {}
	end

	self.数据[道具id].临时附魔[附魔属性] = {
		数值 = 附魔数值,
		时间 = 时间转换2(到期时间)
	}
	指定数据.装备属性[附魔属性] = (指定数据.装备属性[附魔属性] or 0) + 附魔数值
end

function 道具处理类:清除装备临时效果(id, 道具id, 指定数据)
	local lb = 附魔属性列表

	if self.数据[道具id].临时附魔 ~= nil then
		for i = 1, #lb do
			if self.数据[道具id].临时附魔[lb[i]] ~= nil and self.数据[道具id].临时附魔[lb[i]].数值 ~= 0 then
				指定数据.装备属性[lb[i]] = 指定数据.装备属性[lb[i]] - self.数据[道具id].临时附魔[lb[i]].数值
			end
		end
	end

	self.数据[道具id].临时附魔 = {}
end

function 道具处理类:一键附魔处理(id, 指定数据, 助战编号, 扣钱)
	local 附魔属性 = 附魔属性列表
	local lv = 玩家数据[id].角色.数据.等级
	lv = lv <= 140 and 150 or lv + 10

	if 指定数据.装备 == nil then
		常规提示(id, "#y/一键附魔需要身上6个部位全部装备，请重试")

		return
	elseif 指定数据.装备[1] == nil or 指定数据.装备[2] == nil or 指定数据.装备[3] == nil or 指定数据.装备[4] == nil or 指定数据.装备[5] == nil or 指定数据.装备[6] == nil then
		常规提示(id, "#y/一键附魔需要身上6个部位全部装备，请重试")

		return
	end

	if 扣钱 == true then
		if 银子检查(id, 一键附魔金钱 * 10000) then
			玩家数据[id].角色:扣除银子(一键附魔金钱 * 10000, 0, 0, "一键附魔", 1)
		else
			常规提示(id, "#y/您身上银子不足#R" .. 一键附魔金钱 .. "W,无法附魔")

			return
		end
	end

	self:清除装备临时效果(id, 指定数据.装备[1], 指定数据)
	self:清除装备临时效果(id, 指定数据.装备[2], 指定数据)
	self:清除装备临时效果(id, 指定数据.装备[3], 指定数据)
	self:清除装备临时效果(id, 指定数据.装备[4], 指定数据)
	self:清除装备临时效果(id, 指定数据.装备[5], 指定数据)
	self:清除装备临时效果(id, 指定数据.装备[6], 指定数据)

	for k, v in pairs(附魔技能列表) do
		self:添加装备临时效果(id, 指定数据.装备[v[4]], v[1], qz(math.random(v[2] * lv, v[3] * lv)), 指定数据)
	end

	道具刷新(id, 1)

	if 助战编号 == nil then
		发送数据(玩家数据[id].连接id, 3503, 玩家数据[id].角色:取装备数据())
		发送数据(玩家数据[id].连接id, 3504)
		玩家数据[id].角色:刷新信息()
		常规提示(id, "角色一键附魔成功")

		助战附魔 = true
	else
		玩家数据[id].助战:刷新信息(助战编号)
		常规提示(id, "【" .. 助战编号 .. "号】助战一键附魔成功")
	end
end

function 道具处理类:清空背包处理(id, 背包类型)
	local 角色数据 = 玩家数据[id].角色.数据
	local 提示 = ""

	if string.find(背包类型, "背包-") ~= nil then
		local lx = 分割文本(背包类型, "-")[2]

		if 角色数据[lx] ~= nil and not 判断是否为空表(角色数据[lx]) then
			for k, v in pairs(角色数据[lx]) do
				self.数据[v] = nil
				k = nil
			end

			提示 = "#P【" .. 背包类型 .. "栏】#Y清空成功"
		end
	else
		if 超级行囊类型列表1[背包类型] ~= nil and 角色数据.超级行囊[背包类型] ~= nil then
			for k, v in pairs(角色数据.超级行囊[背包类型]) do
				self.数据[v] = nil
				k = nil
			end
		end

		提示 = "#P【超级行囊-" .. 背包类型 .. "栏】#Y清空成功"
	end

	if 提示 ~= "" then
		常规提示(id, 提示)
	else
		常规提示(id, "清空背包失败、参数错误")
	end
end

function 道具处理类:光武拓印处理(连接id, id, 数据, 角色数据, 助战)
	local 道具id = 角色数据.装备[3]
	local 副武器 = false

	if 数据.副武器 == true then
		道具id = 角色数据.装备[4]

		if 角色数据.模型 == "影精灵" and self.数据[道具id].子类 == 911 then
			副武器 = true
		else
			常规提示(id, "数据错误!")

			return
		end
	end

	local 拓印武器 = 数据.拓印武器

	if self.数据[道具id].光武拓印 == nil and self.数据[道具id].不可交易 == true then
		self.数据[道具id].始终不可交易 = true
	end

	if 拓印武器 == "还原" then
		self.数据[道具id].光武拓印 = nil

		if self.数据[道具id].始终不可交易 ~= true then
			self.数据[道具id].不可交易 = nil
		end

		if 助战 == nil then
			发送数据(玩家数据[id].连接id, 3503, 玩家数据[id].角色:取装备数据())
			发送数据(玩家数据[id].连接id, 3504)
			玩家数据[id].角色:刷新信息()
			地图处理类:更新武器(id, self.数据[玩家数据[id].角色.数据.装备[3]])
		else
			local 助战武器数据 = {
				子类 = self.数据[道具id].子类,
				名称 = self.数据[道具id].名称,
				等级 = self.数据[道具id].级别限制,
				光武拓印 = self.数据[道具id].光武拓印
			}

			if self.数据[道具id].染色组 ~= nil then
				助战武器数据.染色组 = table.loadstring(table.tostring(self.数据[道具id].染色组))
				助战武器数据.染色方案 = self.数据[道具id].染色方案
			else
				助战武器数据.染色组 = nil
				助战武器数据.染色方案 = nil
			end

			if 副武器 == true then
				发送数据(玩家数据[id].连接id, 106, {
					编号 = 助战,
					数据 = 角色数据.武器数据,
					副武器数据 = 助战武器数据
				})
			else
				发送数据(玩家数据[id].连接id, 106, {
					编号 = 助战,
					数据 = 助战武器数据,
					副武器数据 = 角色数据.副武器数据
				})
			end
		end

		常规提示(id, "已取消该武器的光武拓印!")

		return
	end

	if self.数据[道具id].名称 ~= 拓印武器 then
		if 玩家数据[id].角色:扣除仙玉(光武拓印仙玉, "光武拓印", id) == false then
			常规提示(id, "你的仙玉不足#R" .. 光武拓印仙玉 .. "#Y、光武拓印失败!")

			return
		end

		self.数据[道具id].光武拓印 = 拓印武器
		self.数据[道具id].不可交易 = true

		常规提示(id, "光武拓印成功！已将你的#R" .. self.数据[道具id].名称 .. "#Y拓印为#R" .. 拓印武器 .. "#Y造型！")

		if 助战 == nil then
			发送数据(玩家数据[id].连接id, 3503, 玩家数据[id].角色:取装备数据())
			发送数据(玩家数据[id].连接id, 3504)
			玩家数据[id].角色:刷新信息()
			地图处理类:更新武器(id, self.数据[玩家数据[id].角色.数据.装备[3]])
		else
			local 助战武器数据 = {
				子类 = self.数据[道具id].子类,
				名称 = self.数据[道具id].名称,
				等级 = self.数据[道具id].级别限制,
				光武拓印 = self.数据[道具id].光武拓印
			}

			if self.数据[道具id].染色组 ~= nil then
				助战武器数据.染色组 = table.loadstring(table.tostring(self.数据[道具id].染色组))
				助战武器数据.染色方案 = self.数据[道具id].染色方案
			else
				助战武器数据.染色组 = nil
				助战武器数据.染色方案 = nil
			end

			if 数据.副武器 == true then
				发送数据(玩家数据[id].连接id, 106, {
					编号 = 助战,
					数据 = 角色数据.武器数据,
					副武器数据 = 助战武器数据
				})
			else
				发送数据(玩家数据[id].连接id, 106, {
					编号 = 助战,
					数据 = 助战武器数据,
					副武器数据 = 角色数据.副武器数据
				})
			end
		end
	else
		常规提示(id, "拓印武器和武器本身一致、无需拓印!")
	end
end

function 道具处理类:武器染色处理(连接id, id, 数据, 角色数据, 助战)
	local 道具id = 角色数据.装备[3]
	local 副武器 = false

	if 数据.副武器 == true then
		道具id = 角色数据.装备[4]

		if 角色数据.模型 == "影精灵" and self.数据[道具id].子类 == 911 then
			副武器 = true
		else
			常规提示(id, "数据错误!")

			return
		end
	end

	local 彩果数量 = 50

	for n = 1, #数据 do
		彩果数量 = 彩果数量 + 数据[n]
	end

	if 扣除道具(id, "彩果", 彩果数量) ~= true then
		常规提示(id, "武器染色需要#R" .. 彩果数量 .. "个#Y彩果,你没有那么多!")

		return
	else
		if self.数据[道具id].染色方案 == nil then
			self.数据[道具id].染色方案 = 0
		end

		if self.数据[道具id].染色组 == nil then
			self.数据[道具id].染色组 = {}
		end

		self.数据[道具id].染色方案 = 数据.序列
		self.数据[道具id].染色组[1] = 数据.序列1
		self.数据[道具id].染色组[2] = 数据.序列2

		if self.数据[道具id].染色效果 ~= nil and self.数据[道具id].染色效果.首次 == nil then
			角色数据.装备属性[self.数据[道具id].染色效果.类型] = 角色数据.装备属性[self.数据[道具id].染色效果.类型] - self.数据[道具id].染色效果.数值
		end

		local 道具等级 = self.数据[道具id].级别限制
		local 临时属性, 临时数值 = nil
		local 主属性 = {
			"命中",
			"气血",
			"灵力",
			"魔法",
			"速度",
			"防御",
			"伤害",
			"法伤",
			"法防",
			"治疗能力",
			"固定伤害"
		}
		local 副属性 = {
			"抗封印等级",
			"法术伤害结果",
			"法术暴击等级",
			"抗法术暴击等级",
			"抗物理暴击等级",
			"格挡值",
			"气血回复效果",
			"封印命中等级",
			"狂暴等级",
			"穿刺等级",
			"物理暴击等级"
		}

		if 取随机数(1, 10000) > 3000 then
			临时属性 = 主属性[math.random(1, #主属性)]
			临时数值 = math.random(math.floor(道具等级 * 0.5), math.floor(道具等级))

			if 临时属性 == "灵力" then
				临时数值 = math.ceil(临时数值 / 2)
			elseif 临时属性 == "气血" or 临时属性 == "魔法" then
				临时数值 = 临时数值 * 4
			end
		else
			临时属性 = 副属性[math.random(1, #副属性)]
			临时数值 = math.random(math.floor(道具等级 * 0.3), math.floor(道具等级 * 0.6))
		end

		self.数据[道具id].染色效果 = {
			类型 = 临时属性,
			数值 = 临时数值
		}

		常规提示(id, "恭喜你，武器染色成功！获得武器染色效果：#G" .. 临时属性 .. "#R+" .. 临时数值)

		角色数据.装备属性[self.数据[道具id].染色效果.类型] = (角色数据.装备属性[self.数据[道具id].染色效果.类型] or 0) + self.数据[道具id].染色效果.数值

		if 助战 == nil then
			发送数据(玩家数据[id].连接id, 3503, 玩家数据[id].角色:取装备数据())
			发送数据(玩家数据[id].连接id, 3504)
			道具刷新(id, 1)
			玩家数据[id].角色:刷新信息()
			地图处理类:更新武器(id, self.数据[玩家数据[id].角色.数据.装备[3]])
		else
			local 助战武器数据 = {
				子类 = self.数据[道具id].子类,
				名称 = self.数据[道具id].名称,
				等级 = self.数据[道具id].级别限制,
				光武拓印 = self.数据[道具id].光武拓印
			}

			if self.数据[道具id].染色组 ~= nil then
				助战武器数据.染色组 = table.loadstring(table.tostring(self.数据[道具id].染色组))
				助战武器数据.染色方案 = self.数据[道具id].染色方案

				print(助战武器数据.染色方案)
			else
				助战武器数据.染色组 = nil
				助战武器数据.染色方案 = nil
			end

			玩家数据[id].助战:刷新信息(助战, 1)
			发送数据(玩家数据[id].连接id, 100, {
				编号 = 助战,
				数据 = 玩家数据[id].助战:取指定数据(助战)
			})

			if 副武器 == true then
				发送数据(玩家数据[id].连接id, 106, {
					编号 = 助战,
					数据 = 角色数据.武器数据,
					副武器数据 = 助战武器数据
				})
			else
				发送数据(玩家数据[id].连接id, 106, {
					编号 = 助战,
					数据 = 助战武器数据,
					副武器数据 = 角色数据.副武器数据
				})
			end
		end
	end
end

function 道具处理类:获取道具数量(id, 道具名, 参数一名称, 参数一, 参数二名称, 参数二)
	local 道具数量 = 0

	for n = 1, 100 do
		if 玩家数据[id].角色.数据.道具[n] ~= nil and self.数据[玩家数据[id].角色.数据.道具[n]] ~= nil and self.数据[玩家数据[id].角色.数据.道具[n]].名称 == 道具名 then
			if 参数一名称 ~= nil and 参数一 ~= nil then
				if self.数据[玩家数据[id].角色.数据.道具[n]][参数一名称] ~= nil and self.数据[玩家数据[id].角色.数据.道具[n]][参数一名称] == 参数一 then
					if 参数二名称 ~= nil and 参数二 ~= nil then
						if self.数据[玩家数据[id].角色.数据.道具[n]][参数二名称] ~= nil and self.数据[玩家数据[id].角色.数据.道具[n]][参数二名称] == 参数二 then
							道具数量 = 道具数量 + self.数据[玩家数据[id].角色.数据.道具[n]].数量
						end
					else
						道具数量 = 道具数量 + self.数据[玩家数据[id].角色.数据.道具[n]].数量
					end
				end
			else
				道具数量 = 道具数量 + self.数据[玩家数据[id].角色.数据.道具[n]].数量
			end
		end
	end

	return 道具数量
end

出售宝石等级 = {}

function 道具处理类:扣除道具数量(id, 道具名, 数量, 参数一名称, 参数一, 参数二名称, 参数二, 宝石)
	道具出售价格列表[id] = nil
	local 扣除数据 = {}
	local 扣除数据1 = {}
	local 扣除数据2 = {}
	local 已扣除 = 0

	for n = 1, 100 do
		if 玩家数据[id].角色.数据.道具[n] ~= nil and self.数据[玩家数据[id].角色.数据.道具[n]] ~= nil and self.数据[玩家数据[id].角色.数据.道具[n]].名称 == 道具名 then
			if 参数一名称 ~= nil and 参数一 ~= nil then
				if self.数据[玩家数据[id].角色.数据.道具[n]][参数一名称] ~= nil and (self.数据[玩家数据[id].角色.数据.道具[n]][参数一名称] == 参数一 or 宝石 == true) then
					if 参数一名称 == "级别限制" and 宝石 == true then
						if 参数一 <= self.数据[玩家数据[id].角色.数据.道具[n]][参数一名称] then
							出售宝石等级[id] = self.数据[玩家数据[id].角色.数据.道具[n]][参数一名称] - 参数一 + 1
						else
							常规提示(id, "你的#R" .. 道具名 .. "#Y级别不够。")

							return false
						end
					end

					if 参数二名称 ~= nil and 参数二 ~= nil then
						if self.数据[玩家数据[id].角色.数据.道具[n]][参数二名称] ~= nil and self.数据[玩家数据[id].角色.数据.道具[n]][参数二名称] == 参数二 then
							if self.数据[玩家数据[id].角色.数据.道具[n]].数量 == nil then
								self.数据[玩家数据[id].角色.数据.道具[n]].数量 = 1
							end

							if self.数据[玩家数据[id].角色.数据.道具[n]].数量 >= 数量 - 已扣除 then
								扣除数据[#扣除数据 + 1] = {
									格子 = n,
									id = 玩家数据[id].角色.数据.道具[n],
									数量 = 数量 - 已扣除
								}
								已扣除 = 已扣除 + 数量 - 已扣除

								break
							end

							已扣除 = 已扣除 + self.数据[玩家数据[id].角色.数据.道具[n]].数量
							扣除数据[#扣除数据 + 1] = {
								格子 = n,
								id = 玩家数据[id].角色.数据.道具[n],
								数量 = self.数据[玩家数据[id].角色.数据.道具[n]].数量
							}

							break
						end
					else
						if self.数据[玩家数据[id].角色.数据.道具[n]].数量 == nil then
							self.数据[玩家数据[id].角色.数据.道具[n]].数量 = 1
						end

						if self.数据[玩家数据[id].角色.数据.道具[n]].数量 >= 数量 - 已扣除 then
							扣除数据[#扣除数据 + 1] = {
								格子 = n,
								id = 玩家数据[id].角色.数据.道具[n],
								数量 = 数量 - 已扣除
							}
							已扣除 = 已扣除 + 数量 - 已扣除

							break
						else
							已扣除 = 已扣除 + self.数据[玩家数据[id].角色.数据.道具[n]].数量
							扣除数据[#扣除数据 + 1] = {
								格子 = n,
								id = 玩家数据[id].角色.数据.道具[n],
								数量 = self.数据[玩家数据[id].角色.数据.道具[n]].数量
							}
						end
					end
				end
			else
				if self.数据[玩家数据[id].角色.数据.道具[n]].数量 == nil then
					self.数据[玩家数据[id].角色.数据.道具[n]].数量 = 1
				end

				if self.数据[玩家数据[id].角色.数据.道具[n]].数量 >= 数量 - 已扣除 then
					扣除数据[#扣除数据 + 1] = {
						格子 = n,
						id = 玩家数据[id].角色.数据.道具[n],
						数量 = 数量 - 已扣除
					}
					已扣除 = 已扣除 + 数量 - 已扣除

					break
				else
					已扣除 = 已扣除 + self.数据[玩家数据[id].角色.数据.道具[n]].数量
					扣除数据[#扣除数据 + 1] = {
						格子 = n,
						id = 玩家数据[id].角色.数据.道具[n],
						数量 = self.数据[玩家数据[id].角色.数据.道具[n]].数量
					}
				end
			end
		end
	end

	if 已扣除 < 数量 then
		常规提示(id, "你没有那么多的#R" .. 道具名 .. "#Y")

		return false
	else
		for n = 1, #扣除数据 do
			if self.数据[扣除数据[n].id].购买价格 ~= nil then
				if 道具出售价格列表[id] == nil then
					道具出售价格列表[id] = {}
				end

				道具出售价格列表[id].价格 = (道具出售价格列表[id].价格 or 0) + self.数据[扣除数据[n].id].购买价格 * 扣除数据[n].数量
				道具出售价格列表[id].数量 = (道具出售价格列表[id].数量 or 0) + 扣除数据[n].数量
			end

			self.数据[扣除数据[n].id].数量 = self.数据[扣除数据[n].id].数量 - 扣除数据[n].数量

			if self.数据[扣除数据[n].id].数量 < 1 then
				self.数据[扣除数据[n].id] = nil
				玩家数据[id].角色.数据.道具[扣除数据[n].格子] = nil
			end

			扣除数据1[#扣除数据1 + 1] = 扣除数据[n].格子
			扣除数据2[#扣除数据2 + 1] = 扣除数据[n].id
		end

		刷新道具行囊多格(id, "道具", 扣除数据1, 扣除数据2)

		return true
	end
end

function 道具处理类:坐骑染色处理(连接id, id, 数据)
	local 彩果数量 = 20

	for n = 1, #数据 do
		彩果数量 = 彩果数量 + 数据[n]
	end

	if 扣除道具(id, "彩果", 彩果数量) ~= true then
		return
	else
		for i = 1, #玩家数据[id].角色.数据.坐骑列表 do
			if 玩家数据[id].角色.数据.坐骑列表[i].认证码 == 数据.序列 then
				if 玩家数据[id].角色.数据.坐骑列表[i].染色方案 == nil then
					玩家数据[id].角色.数据.坐骑列表[i].染色方案 = 0
				end

				if 玩家数据[id].角色.数据.坐骑列表[i].染色组 == nil or 玩家数据[id].角色.数据.坐骑列表[i].染色组 == 0 then
					玩家数据[id].角色.数据.坐骑列表[i].染色组 = {}
				end

				if 玩家数据[id].角色.数据.坐骑.染色方案 == nil then
					玩家数据[id].角色.数据.坐骑.染色方案 = 0
				end

				if 玩家数据[id].角色.数据.坐骑.染色组 == nil or 玩家数据[id].角色.数据.坐骑.染色组 == 0 then
					玩家数据[id].角色.数据.坐骑.染色组 = {}
				end

				玩家数据[id].角色.数据.坐骑列表[i].染色方案 = 数据.序列1
				玩家数据[id].角色.数据.坐骑列表[i].染色组[1] = 数据.序列2
				玩家数据[id].角色.数据.坐骑列表[i].染色组[2] = 数据.序列3
				玩家数据[id].角色.数据.坐骑列表[i].染色组[3] = 数据.序列4
				玩家数据[id].角色.数据.坐骑.染色方案 = 数据.序列1
				玩家数据[id].角色.数据.坐骑.染色组[1] = 数据.序列2
				玩家数据[id].角色.数据.坐骑.染色组[2] = 数据.序列3
				玩家数据[id].角色.数据.坐骑.染色组[3] = 数据.序列4

				常规提示(id, "恭喜你！坐骑染色成功，快去看看你的坐骑的新颜色吧！")
				发送数据(玩家数据[id].连接id, 60, 玩家数据[id].角色.数据.坐骑)
				发送数据(玩家数据[id].连接id, 61, 玩家数据[id].角色.数据.坐骑列表)
				地图处理类:更新坐骑(id, 玩家数据[id].角色.数据.坐骑)
			end
		end
	end
end

function 道具处理类:坐骑饰品染色处理(连接id, id, 数据)
	local 彩果数量 = 20

	for n = 1, #数据 do
		彩果数量 = 彩果数量 + 数据[n]
	end

	if 扣除道具(id, "彩果", 彩果数量) ~= nil then
		return
	else
		for i = 1, #玩家数据[id].角色.数据.坐骑列表 do
			if 玩家数据[id].角色.数据.坐骑列表[i].认证码 == 数据.序列 then
				if 玩家数据[id].角色.数据.坐骑.饰品 ~= nil and 玩家数据[id].角色.数据.坐骑.饰品物件 ~= nil then
					if 玩家数据[id].角色.数据.坐骑列表[i].饰品物件.染色方案 == nil then
						玩家数据[id].角色.数据.坐骑列表[i].染色方案 = 0
					end

					if 玩家数据[id].角色.数据.坐骑列表[i].饰品物件.染色组 == nil or 玩家数据[id].角色.数据.坐骑列表[i].饰品物件.染色组 == 0 then
						玩家数据[id].角色.数据.坐骑列表[i].饰品物件.染色组 = {}
					end

					if 玩家数据[id].角色.数据.坐骑.饰品物件.染色方案 == nil then
						玩家数据[id].角色.数据.坐骑.饰品物件.染色方案 = 0
					end

					if 玩家数据[id].角色.数据.坐骑.饰品物件.染色组 == nil or 玩家数据[id].角色.数据.坐骑.饰品物件.染色组 == 0 then
						玩家数据[id].角色.数据.坐骑.饰品物件.染色组 = {}
					end

					玩家数据[id].角色.数据.坐骑列表[i].饰品物件.染色方案 = 数据.序列1
					玩家数据[id].角色.数据.坐骑列表[i].饰品物件.染色组[1] = 数据.序列2
					玩家数据[id].角色.数据.坐骑列表[i].饰品物件.染色组[2] = 数据.序列3
					玩家数据[id].角色.数据.坐骑列表[i].饰品物件.染色组[3] = 数据.序列4
					玩家数据[id].角色.数据.坐骑.饰品物件.染色方案 = 数据.序列1
					玩家数据[id].角色.数据.坐骑.饰品物件.染色组[1] = 数据.序列2
					玩家数据[id].角色.数据.坐骑.饰品物件.染色组[2] = 数据.序列3
					玩家数据[id].角色.数据.坐骑.饰品物件.染色组[3] = 数据.序列4

					常规提示(id, "恭喜你！坐骑饰品染色成功，快去看看你的坐骑的新颜色吧！")
					发送数据(玩家数据[id].连接id, 60, 玩家数据[id].角色.数据.坐骑)
					发送数据(玩家数据[id].连接id, 61, 玩家数据[id].角色.数据.坐骑列表)
					地图处理类:更新坐骑(id, 玩家数据[id].角色.数据.坐骑)
				else
					常规提示(id, "少侠是来寻我开心的么？你要染色的坐骑饰品呢！")

					return
				end
			end
		end
	end
end

function 道具处理类:给予暗器(id, 等级)
	local 名称 = "飞刀"

	if 等级 == 1 then
		名称 = "飞刀"
	elseif 等级 == 10 then
		名称 = "顺逆神针"
	elseif 等级 == 2 then
		名称 = "飞蝗石"
	elseif 等级 == 3 then
		名称 = "铁蒺藜"
	elseif 等级 == 4 then
		名称 = "无影神针"
	elseif 等级 == 5 then
		名称 = "孔雀翎"
	elseif 等级 == 6 then
		名称 = "含沙射影"
	elseif 等级 == 7 then
		名称 = "回龙摄魂标"
	elseif 等级 == 8 then
		名称 = "寸阴若梦"
	elseif 等级 == 9 then
		名称 = "魔睛子"
	end

	常规提示(id, "#Y你获得了#R" .. 名称)
	self:给予道具(id, 名称)
end

function 道具处理类:使用法宝(连接id, id, 编号)
	local 道具id = 玩家数据[id].角色.数据.法宝[编号]

	if 道具id == nil or self.数据[道具id] == nil then
		常规提示(id, "#Y你没有这件法宝")
		self:索要法宝(连接id, id)

		return
	end

	local 名称 = self.数据[道具id].名称

	if 名称 == "五色旗盒" then
		if self.数据[道具id].魔法 <= 0 then
			常规提示(id, "#Y你的法宝灵气不足")

			return
		elseif 玩家数据[id].角色.数据.等级 < 30 then
			常规提示(id, "#Y你的等级不足以使用此法宝")

			return
		end

		local aa = "请选择你要进行的操作："
		local xx = {
			"合成导标旗",
			"补充合成旗"
		}

		发送数据(连接id, 1501, {
			名称 = "五色旗盒",
			对话 = aa,
			选项 = xx
		})

		玩家数据[id].最后操作 = "合成旗1"
		玩家数据[id].法宝id = 编号

		return
	elseif 名称 == "月光宝盒" then
		if self.数据[道具id].魔法 <= 0 then
			常规提示(id, "#Y你的法宝灵气不足")

			return
		end

		if 玩家数据[id].角色.数据.等级 < 30 then
			常规提示(id, "#Y你的等级不足以使用此法宝")

			return
		end

		local aa = "请选择你要进行的操作："
		local xx = {
			"送我过去",
			"在这里定标"
		}

		发送数据(连接id, 1501, {
			名称 = "月光宝盒",
			对话 = aa,
			选项 = xx
		})

		玩家数据[id].最后操作 = "月光宝盒"
		玩家数据[id].法宝id = 编号

		return
	end

	常规提示(id, "#Y此类型法宝当前不可用")
end

function 道具处理类:替换法宝(连接id, id, 编号, 编号1)
	local 道具id = 玩家数据[id].角色.数据.法宝[编号]
	local 名称 = self.数据[道具id].名称
	local 门派 = 玩家数据[id].角色.数据.门派

	if 名称 == "天师符" and 门派 ~= "方寸山" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "织女扇" and 门派 ~= "女儿村" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "雷兽" and 门派 ~= "天宫" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "定风珠" and 门派 ~= "五庄观" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "七杀" and 门派 ~= "大唐官府" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "罗汉珠" and 门派 ~= "化生寺" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "天师符" and 门派 ~= "方寸山" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "金刚杵" and 门派 ~= "普陀山" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "兽王令" and 门派 ~= "狮驼岭" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "摄魂" and 门派 ~= "阴曹地府" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "干将莫邪" and 门派 ~= "大唐官府" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "慈悲" and 门派 ~= "化生寺" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "救命毫米" and 门派 ~= "方寸山" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "伏魔天书" and 门派 ~= "天宫" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "普渡" and 门派 ~= "普陀山" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "镇海珠" and 门派 ~= "龙宫" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "奇门五行令" and 门派 ~= "五庄观" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "失心钹" and 门派 ~= "狮驼岭" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "五火神焰印" and 门派 ~= "魔王寨" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "九幽" and 门派 ~= "阴曹地府" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "月影" and 门派 ~= "神木林" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "宝烛" and 门派 ~= "无底洞" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	elseif 名称 == "驭魔笼" and 门派 ~= "九黎城" then
		常规提示(id, "#Y你的门派不允许你使用这样的法宝")

		return
	end

	if 玩家数据[id].角色.数据.法宝佩戴[编号1] == nil then
		玩家数据[id].角色.数据.法宝佩戴[编号1] = 玩家数据[id].角色.数据.法宝[编号]
		玩家数据[id].角色.数据.法宝[编号] = nil
	else
		local 临时编号 = 玩家数据[id].角色.数据.法宝[编号]
		玩家数据[id].角色.数据.法宝[编号] = 玩家数据[id].角色.数据.法宝佩戴[编号1]
		玩家数据[id].角色.数据.法宝佩戴[编号1] = 临时编号
	end

	self:索要法宝(连接id, id)
end

function 道具处理类:卸下法宝(连接id, id, 编号)
	角色卸下法宝(连接id, id, 玩家数据[id].角色.数据, 编号)
end

function 道具处理类:修炼法宝(连接id, id, 编号)
	local 道具id = 玩家数据[id].角色.数据.法宝[编号]

	if 道具id == nil or self.数据[道具id] == nil then
		常规提示(id, "#Y你没有这件法宝")
		self:索要法宝(连接id, id)

		return
	end

	if self.数据[道具id].当前经验 == nil then
		self.数据[道具id].当前经验 = 0
	end

	if self.数据[道具id].升级经验 == nil then
		self.数据[道具id].升级经验 = 法宝经验[self.数据[道具id].分类][1]
	end

	local 上限 = 9

	if self.数据[道具id].分类 == 2 then
		上限 = 12
	elseif self.数据[道具id].分类 == 3 then
		上限 = 15
	elseif self.数据[道具id].分类 == 4 then
		上限 = 18
	end

	if self.数据[道具id].气血 == 上限 then
		常规提示(id, "#Y你的这件法宝已经满层了，无法再进行修炼")

		return
	end

	local 消耗经验 = math.floor(self.数据[道具id].升级经验)

	if 玩家数据[id].角色.数据.当前经验 < 消耗经验 then
		常规提示(id, "#Y本次修炼需要消耗#R" .. 消耗经验 .. "#Y点人物经验，您似乎没有那么多的经验哟")

		return
	end

	玩家数据[id].角色.数据.当前经验 = 玩家数据[id].角色.数据.当前经验 - 消耗经验

	玩家数据[id].角色:日志记录("修炼法宝[" .. self.数据[道具id].名称 .. "]消耗" .. 消耗经验 .. "点经验,剩余经验" .. 玩家数据[id].角色.数据.当前经验)
	常规提示(id, "#Y修炼成功,你消耗了#R" .. 消耗经验 .. "#Y了点人物经验")

	self.数据[道具id].当前经验 = self.数据[道具id].当前经验 + 消耗经验

	if self.数据[道具id].升级经验 <= self.数据[道具id].当前经验 then
		self.数据[道具id].气血 = self.数据[道具id].气血 + 1
		self.数据[道具id].当前经验 = self.数据[道具id].当前经验 - self.数据[道具id].升级经验
		self.数据[道具id].魔法 = 取灵气上限(self.数据[道具id].分类)

		if self.数据[道具id].气血 < 上限 then
			self.数据[道具id].升级经验 = 法宝经验[self.数据[道具id].分类][self.数据[道具id].气血 + 1]
		end

		常规提示(id, "#Y你的法宝#R" .. self.数据[道具id].名称 .. "#Y境界提升了")
	end

	发送数据(连接id, 31, 玩家数据[id].角色:取总数据(1))
	发送数据(连接id, 3528, {
		id = 编号,
		当前经验 = self.数据[道具id].当前经验,
		升级经验 = self.数据[道具id].升级经验,
		境界 = self.数据[道具id].气血,
		灵气 = self.数据[道具id].魔法
	})
end

function 道具处理类:仓库取走事件(连接id, id, 数据)
	local 页数 = 数据.页数
	local 道具 = 数据.物品
	local 类型 = 数据.类型
	local 格子 = 玩家数据[id].角色:取道具格子1(类型)

	if 格子 == 0 then
		常规提示(id, "#Y/你身上的包裹没有足够的空间")

		return
	end

	玩家数据[id].角色.数据[类型][格子] = 玩家数据[id].角色.数据.道具仓库[页数][道具]
	玩家数据[id].角色.数据.道具仓库[页数][道具] = nil

	刷新道具行囊单格(id, 类型, 格子, 玩家数据[id].角色.数据[类型][格子])
	发送数据(连接id, 3513, 玩家数据[id].道具:索要道具5(id, 类型))
	刷新仓库单格(id, 数据.页数, 道具, nil)
	发送数据(连接id, 3525)
end

function 道具处理类:仓库存放事件(连接id, id, 数据)
	local 页数 = 数据.页数
	local 道具 = 数据.物品
	local 类型 = 数据.类型
	local 格子 = 0

	for n = 1, 20 do
		if 玩家数据[id].角色.数据.道具仓库[页数][n] == nil and 格子 == 0 then
			格子 = n
		end
	end

	if 格子 == 0 then
		常规提示(id, "#Y/你这个仓库已经无法存放更多的物品了")

		return
	end

	if 道具 ~= nil and 玩家数据[id].角色.数据[类型][道具] ~= nil and self.数据[玩家数据[id].角色.数据[类型][道具]] ~= nil and self.数据[玩家数据[id].角色.数据[类型][道具]].总类 == "帮派银票" and self.数据[玩家数据[id].角色.数据[类型][道具]].名称 == "帮派银票" then
		常规提示(id, "#Y/该物品无法存入到仓库")

		return
	end

	if 道具 ~= nil and 玩家数据[id].角色.数据[类型][道具] ~= nil and self.数据[玩家数据[id].角色.数据[类型][道具]] ~= nil and self.数据[玩家数据[id].角色.数据[类型][道具]].总类 == "跑商商品" then
		常规提示(id, "#Y/该物品无法存入到仓库")

		return
	end

	if 道具 ~= nil and 玩家数据[id].角色.数据[类型][道具] ~= nil and self.数据[玩家数据[id].角色.数据[类型][道具]] ~= nil and self.数据[玩家数据[id].角色.数据[类型][道具]].总类 == 1001 then
		常规提示(id, "#Y/该物品无法存入到仓库")

		return
	end

	玩家数据[id].角色.数据.道具仓库[页数][格子] = 玩家数据[id].角色.数据[类型][道具]
	玩家数据[id].角色.数据[类型][道具] = nil

	刷新道具行囊单格(id, 类型, 道具, nil)
	发送数据(连接id, 3513, 玩家数据[id].道具:索要道具5(id, 类型))
	刷新仓库单格(id, 数据.页数, 格子, 玩家数据[id].角色.数据.道具仓库[页数][格子])
	发送数据(连接id, 3525)
end

function 道具处理类:快捷加血(连接id, id, 类型)
	if 玩家数据[id].战斗 ~= 0 then
		return
	end

	local 数值 = 0
	local 编号 = 0

	if 类型 == 1 then
		数值 = 玩家数据[id].角色.数据.气血上限 - 玩家数据[id].角色.数据.气血
	else
		编号 = 玩家数据[id].召唤兽:取编号(玩家数据[id].角色.数据.参战宝宝.认证码)
		数值 = 玩家数据[id].召唤兽.数据[编号].最大气血 - 玩家数据[id].召唤兽.数据[编号].气血
	end

	if 数值 == 0 then
		return
	end

	local 恢复 = self:快捷加血1(id, 数值)

	if 恢复 == 0 then
		return
	end

	self:加血处理(连接id, id, 恢复, 编号)
end

function 道具处理类:快捷加血1(id, 数值)
	local 道具 = {
		"包子",
		"四叶花"
	}
	local 恢复 = 0
	local 道具删除 = {}
	local 刷新列表1 = {}
	local 刷新列表2 = {}

	for n = 1, 100 do
		if 玩家数据[id].角色.数据.道具[n] ~= nil then
			local 道具id = 玩家数据[id].角色.数据.道具[n]
			local 符合 = false

			for i = 1, #道具 do
				if self.数据[道具id].名称 == 道具[i] then
					符合 = true
				end
			end

			if 符合 then
				if 恢复 < 数值 and 数值 <= self:取加血道具1(self.数据[道具id].名称, 道具id) * self.数据[道具id].数量 then
					local 扣除数量 = 0

					for i = 1, self.数据[道具id].数量 do
						if 恢复 < 数值 then
							恢复 = 恢复 + self:取加血道具1(self.数据[道具id].名称, 道具id)
							扣除数量 = 扣除数量 + 1
						end
					end

					道具删除[#道具删除 + 1] = {
						格子 = n,
						id = 道具id,
						数量 = 扣除数量
					}
				elseif 恢复 < 数值 then
					恢复 = self:取加血道具1(self.数据[道具id].名称, 道具id) * self.数据[道具id].数量
					道具删除[#道具删除 + 1] = {
						格子 = n,
						id = 道具id,
						数量 = self.数据[道具id].数量
					}
					刷新列表1[#刷新列表1 + 1] = n + 0
					刷新列表2[#刷新列表2 + 1] = 道具id + 0
				end
			end
		end
	end

	if 恢复 ~= 0 then
		for n = 1, #道具删除 do
			self.数据[道具删除[n].id].数量 = self.数据[道具删除[n].id].数量 - 道具删除[n].数量

			if self.数据[道具删除[n].id].数量 < 1 then
				玩家数据[id].角色.数据.道具[道具删除[n].格子] = nil
			end
		end

		刷新道具行囊多格(id, "道具", 刷新列表1, 刷新列表2)
	end

	if 数值 < 恢复 then
		恢复 = 数值
	end

	return 恢复
end

function 道具处理类:快捷加蓝(连接id, id, 类型)
	if 玩家数据[id].战斗 ~= 0 then
		return
	end

	local 数值 = 0
	local 编号 = 0

	if 类型 == 1 then
		数值 = 玩家数据[id].角色.数据.最大魔法 - 玩家数据[id].角色.数据.魔法
	else
		编号 = 玩家数据[id].召唤兽:取编号(玩家数据[id].角色.数据.参战宝宝.认证码)
		数值 = 玩家数据[id].召唤兽.数据[编号].最大魔法 - 玩家数据[id].召唤兽.数据[编号].魔法
	end

	if 数值 == 0 then
		return
	end

	local 恢复 = self:快捷加蓝1(id, 数值)

	if 恢复 == 0 then
		return
	end

	self:加魔处理(连接id, id, 恢复, 编号)
end

function 道具处理类:快捷加蓝1(id, 数值)
	local 道具 = {
		"鬼切草",
		"佛手",
		"紫丹罗"
	}
	local 恢复 = 0
	local 道具删除 = {}
	local 刷新列表1 = {}
	local 刷新列表2 = {}

	for n = 1, 100 do
		if 玩家数据[id].角色.数据.道具[n] ~= nil then
			local 道具id = 玩家数据[id].角色.数据.道具[n]
			local 符合 = false

			for i = 1, #道具 do
				if self.数据[道具id].名称 == 道具[i] then
					符合 = true
				end
			end

			if 符合 then
				if 恢复 < 数值 and 数值 <= self:取加魔道具1(self.数据[道具id].名称, 道具id) * self.数据[道具id].数量 then
					local 扣除数量 = 0

					for i = 1, self.数据[道具id].数量 do
						if 恢复 < 数值 then
							恢复 = 恢复 + self:取加魔道具1(self.数据[道具id].名称, 道具id)
							扣除数量 = 扣除数量 + 1
						end
					end

					道具删除[#道具删除 + 1] = {
						格子 = n,
						id = 道具id,
						数量 = 扣除数量
					}
				elseif 恢复 < 数值 then
					恢复 = self:取加魔道具1(self.数据[道具id].名称, 道具id) * self.数据[道具id].数量
					道具删除[#道具删除 + 1] = {
						格子 = n,
						id = 道具id,
						数量 = self.数据[道具id].数量
					}
					刷新列表1[#刷新列表1 + 1] = n + 0
					刷新列表2[#刷新列表2 + 1] = 道具id + 0
				end
			end
		end
	end

	if 恢复 ~= 0 then
		for n = 1, #道具删除 do
			self.数据[道具删除[n].id].数量 = self.数据[道具删除[n].id].数量 - 道具删除[n].数量

			if self.数据[道具删除[n].id].数量 < 1 then
				玩家数据[id].角色.数据.道具[道具删除[n].格子] = nil
			end
		end

		刷新道具行囊多格(id, "道具", 刷新列表1, 刷新列表2)
	end

	if 数值 < 恢复 then
		恢复 = 数值
	end

	return 恢复
end

function 道具处理类:摊位上架商品(连接id, id, 数据)
	if 玩家数据[id].摊位数据 == nil then
		return
	end

	if 数据.价格 == "" or 数据.价格 == nil or 数据.价格 + 0 <= 0 then
		数据.价格 = 1
	end

	local 价格 = 数据.价格 + 0

	if 价格 <= 0 then
		常规提示(id, "#Y/商品的最低价格不能低于1两银子")

		return
	end

	if 数据.bb == nil then
		local 编号 = 玩家数据[id].角色.数据.道具[数据.道具 + 0]

		if self.数据[编号].不可交易 then
			常规提示(id, "#Y/该物品不可转移给他人")

			return
		end

		玩家数据[id].摊位数据.道具[数据.道具 + 0] = table.loadstring(table.tostring(self.数据[编号]))
		玩家数据[id].摊位数据.道具[数据.道具 + 0].价格 = 价格

		常规提示(id, "#Y/上架物品成功！")
	elseif 数据.道具 == nil then
		local 编号 = 数据.bb + 0

		if 玩家数据[id].召唤兽.数据[编号].不可交易 then
			常规提示(id, "#Y/该召唤兽不可转移给他人")

			return
		elseif 玩家数据[id].召唤兽.数据[编号].统御 ~= nil then
			常规提示(id, "#Y/已被坐骑统御的召唤兽无法转移给他人")

			return
		elseif 玩家数据[id].角色.数据.召唤兽携带数量 < #玩家数据[id].召唤兽.数据 then
			常规提示(id, "#Y/召唤携带数量超过" .. 玩家数据[id].角色.数据.召唤兽携带数量 .. "个无法上架,请将多余的存仓库")

			return
		end

		玩家数据[id].摊位数据.bb[编号] = table.loadstring(table.tostring(玩家数据[id].召唤兽.数据[编号]))
		玩家数据[id].摊位数据.bb[编号].价格 = 价格
		玩家数据[id].摊位数据.bb[编号].id = 编号

		常规提示(id, "#Y/上架召唤兽成功！")
	end

	玩家数据[id].摊位数据.更新 = os.time()

	self:索要摊位数据(连接id, id, 3517)
end

function 道具处理类:收摊处理(连接id, id)
	玩家数据[id].摊位数据 = nil

	常规提示(id, "#Y/收摊回家玩老婆去咯！")
	发送数据(连接id, 3518)
	地图处理类:取消玩家摊位(id)
end

function 道具处理类:自动合成宝石(id, 名称, 道具id, 包裹类型, 编号, 合全部)
	local 合成格子 = 0
	local 合成id = 0
	local 扣除数量 = 2

	if 名称 == "星辉石" then
		扣除数量 = 3
	end

	local 合成模式 = 1
	local 全部扣除数量 = 0

	if self.数据[道具id] == nil or 扣除数量 > (self.数据[道具id].数量 or 1) - 全部扣除数量 then
		常规提示(id, "宝石数量不足")

		return
	end

	if 合全部 ~= nil then
		合成模式 = 0
	end

	local 宝石级别 = self.数据[道具id].级别限制 + 1
	local 几率 = 玩家数据[id].装备:取宝石合成几率(id, 宝石级别)

	if self.数据[道具id].购买价格 ~= nil then
		道具购买价格列表[id] = self.数据[道具id].购买价格 * 扣除数量
	end

	local 结果 = 0
	local 失败 = 0

	if (结果 == 0 and 失败 == 0 or 合成模式 == 0) and self.数据[道具id] ~= nil then
		while (结果 == 0 and 失败 == 0 or 合成模式 == 0) and self.数据[道具id] ~= nil and 扣除数量 <= (self.数据[道具id].数量 or 1) - 全部扣除数量 do
			if 几率 then
				结果 = 结果 + 1
				全部扣除数量 = 全部扣除数量 + 扣除数量
			else
				失败 = 失败 + 1
				全部扣除数量 = 全部扣除数量 + 1
			end
		end
	end

	if 结果 > 0 then
		获取道具模式[id] = 2

		if 名称 == "钟灵石" then
			if 结果 > 1 then
				钟灵石数量[id] = 结果
			end

			快捷给道具(id, 名称, 宝石级别, self.数据[道具id].附加特性, nil, true)
		else
			快捷给道具(id, 名称, 宝石级别, 结果, nil, true)
		end

		获取道具模式[id] = nil
	end

	道具购买价格列表[id] = nil

	扣除指定位置道具(id, 道具id, 包裹类型, 编号, 全部扣除数量)

	if 合成模式 == 0 then
		if 失败 > 0 then
			常规提示(id, "宝石合成失败#P" .. 失败 .. "#Y次、你因此损失了#P" .. 失败 * 1 .. "#Y颗宝石")
		end

		if 结果 > 0 then
			常规提示(id, "#P(宝石一键合成)#Y你合成了#S" .. 结果 .. "#Y个#G" .. 宝石级别 .. "级" .. 名称)
		end
	elseif 结果 > 0 then
		常规提示(id, "你合成了一个#G" .. 宝石级别 .. "级" .. 名称)
	else
		常规提示(id, "合成失败，你因此损失了一颗宝石")
	end
end

function 道具处理类:更改摊位招牌(连接id, id, 名称)
	if 玩家数据[id].摊位数据 == nil then
		return
	end

	if os.time() - 玩家数据[id].摊位数据.更新 <= 5 then
		常规提示(id, "#Y/请不要频繁更换招牌")

		return
	end

	常规提示(id, "#Y/更新招牌成功")

	玩家数据[id].摊位数据.更新 = os.time()
	玩家数据[id].摊位数据.名称 = 名称

	发送数据(连接id, 3516, 名称)
	地图处理类:设置玩家摊位(id, 名称)
end

function 道具处理类:购买摊位商品(连接id, id, 数据)
	local 对方id = 玩家数据[id].摊位id

	if 假人玩家处理类在线 and 数据 ~= nil and 对方id ~= nil and math.floor(对方id) < 4000000 and 摆摊假人处理类:假人信息(对方id) ~= nil then
		假人玩家处理类:malltop(对方id, 连接id, id, 数据)

		return
	end

	if 对方id == nil or 玩家数据[对方id] == nil or 玩家数据[对方id].摊位数据 == nil then
		常规提示(id, "#Y/这个摊位并不存在")

		return
	end

	if 玩家数据[id].摊位查看 < 玩家数据[对方id].摊位数据.更新 then
		常规提示(id, "#Y/这个摊位的数据已经发生了变化，请重新打开该摊位")

		return
	end

	local 名称 = 玩家数据[对方id].角色.数据.名称
	local 名称1 = 玩家数据[id].角色.数据.名称
	local 账号 = 玩家数据[对方id].账号
	local 账号1 = 玩家数据[id].账号

	if 数据.bb == nil then
		if 玩家数据[对方id].摊位数据.道具[数据.道具] == nil then
			常规提示(id, "#Y/这个商品并不存在")

			return
		end

		if 玩家数据[对方id].角色.数据.道具[数据.道具] == nil or 玩家数据[对方id].道具.数据[玩家数据[对方id].角色.数据.道具[数据.道具]] == nil then
			常规提示(id, "#Y/这个商品并不存在")

			return
		end

		if 玩家数据[对方id].道具.数据[玩家数据[对方id].角色.数据.道具[数据.道具]].识别码 ~= 玩家数据[对方id].摊位数据.道具[数据.道具].识别码 then
			常规提示(id, "#Y/这个商品并不存在")

			return
		end

		local 价格 = 玩家数据[对方id].摊位数据.道具[数据.道具].价格

		if 玩家数据[对方id].摊位数据.道具[数据.道具].可叠加 == false or 玩家数据[对方id].摊位数据.道具[数据.道具].数量 == nil then
			数据.数量 = 1
		elseif 玩家数据[对方id].摊位数据.道具[数据.道具].数量 < 数据.数量 then
			数据.数量 = 玩家数据[对方id].摊位数据.道具[数据.道具].数量
		end

		if 数据.数量 >= 1 then
			价格 = 玩家数据[对方id].摊位数据.道具[数据.道具].价格 * 数据.数量
		end

		if math.floor(数据.数量) ~= 数据.数量 then
			写配置("./ip封禁.ini", "ip", 玩家数据[id].ip, 1)
			发送数据(玩家数据[id].连接id, 998, "请注意你的角色异常！已经对你进行封IP")

			return 0
		end

		if math.floor(价格) ~= 价格 then
			写配置("./ip封禁.ini", "ip", 玩家数据[id].ip, 1)
			发送数据(玩家数据[id].连接id, 998, "请注意你的角色异常！已经对你进行封IP")

			return 0
		end

		if 玩家数据[id].角色.数据.银子 < 价格 then
			常规提示(id, "#Y/你没有那么多的银子")

			return
		end

		if 数据.数量 < 1 then
			常规提示(id, "#Y/数量不能为0")

			return
		end

		if 价格 <= 0 then
			常规提示(id, "#Y/操你妈还想刷钱!")

			return
		end

		local 临时格子 = 玩家数据[id].角色:取道具格子()

		if 临时格子 == 0 then
			常规提示(id, "#Y/请先整理下包裹吧！")

			return
		end

		玩家数据[id].角色:扣除银子(价格, 0, 0, "摊位购买3", 1)
		玩家数据[对方id].角色:添加银子(价格, "摊位出售", 1)

		local 道具id = self:取新编号()
		local 道具名称 = 玩家数据[对方id].摊位数据.道具[数据.道具].名称
		local 道具识别码 = 玩家数据[对方id].摊位数据.道具[数据.道具].识别码

		玩家数据[id].角色:日志记录(format("[摊位系统-购买3]购买道具[%s][%s]，花费%s两银子,出售者信息：[%s][%s][%s]", 道具名称, 道具识别码, 价格, 账号, 对方id, 名称))
		玩家数据[对方id].角色:日志记录(format("[摊位系统-出售]出售道具[%s][%s]，花费%s两银子,购买者信息：[%s][%s][%s]", 道具名称, 道具识别码, 价格, 账号1, id, 名称1))
		更改道具归属(道具识别码, 账号, 对方id, 名称)
		常规提示(对方id, "#W/出售#R/" .. 道具名称 .. "#W/成功！")
		常规提示(id, "#W/购买#R/" .. 道具名称 .. "#W/成功5！")

		self.数据[道具id] = table.loadstring(table.tostring(玩家数据[对方id].摊位数据.道具[数据.道具]))
		玩家数据[id].角色.数据.道具[临时格子] = 道具id

		if 玩家数据[对方id].摊位数据.道具[数据.道具].可叠加 == false or 玩家数据[对方id].摊位数据.道具[数据.道具].数量 == nil then
			玩家数据[对方id].道具.数据[玩家数据[对方id].角色.数据.道具[数据.道具]] = nil
			玩家数据[对方id].角色.数据.道具[数据.道具] = nil
			玩家数据[对方id].摊位数据.道具[数据.道具] = nil
		else
			self.数据[道具id].数量 = 数据.数量
			玩家数据[对方id].摊位数据.道具[数据.道具].数量 = 玩家数据[对方id].摊位数据.道具[数据.道具].数量 - 数据.数量

			if 玩家数据[对方id].摊位数据.道具[数据.道具].数量 < 1 then
				玩家数据[对方id].道具.数据[玩家数据[对方id].角色.数据.道具[数据.道具]] = nil
				玩家数据[对方id].角色.数据.道具[数据.道具] = nil
				玩家数据[对方id].摊位数据.道具[数据.道具] = nil
			else
				玩家数据[对方id].道具.数据[玩家数据[对方id].角色.数据.道具[数据.道具]].数量 = 玩家数据[对方id].道具.数据[玩家数据[对方id].角色.数据.道具[数据.道具]].数量 - 数据.数量
			end
		end

		刷新道具行囊单格(id, "道具", 临时格子, 道具id)
		刷新道具行囊单格(对方id, "道具", 数据.道具, 玩家数据[对方id].角色.数据.道具[数据.道具])
	elseif 数据.道具 == nil then
		if 玩家数据[对方id].摊位数据.bb[数据.bb] == nil then
			常规提示(id, "#Y/这只召唤兽不存在")

			return
		elseif 玩家数据[id].角色.数据.召唤兽携带数量 <= #玩家数据[id].召唤兽.数据 then
			常规提示(id, "#Y/你当前可携带的召唤兽数量已达上限！")

			return
		end

		local 价格 = 玩家数据[对方id].摊位数据.bb[数据.bb].价格

		if 玩家数据[id].角色.数据.银子 < 价格 then
			常规提示(id, "#Y/你没有那么多的银子")

			return
		end

		local 道具名称 = 玩家数据[对方id].摊位数据.bb[数据.bb].名称
		local 道具等级 = 玩家数据[对方id].摊位数据.bb[数据.bb].等级
		local 道具模型 = 玩家数据[对方id].摊位数据.bb[数据.bb].模型
		local 道具识别码 = 玩家数据[对方id].摊位数据.bb[数据.bb].认证码

		玩家数据[id].角色:扣除银子(价格, 0, 0, "摊位购买4", 1)
		玩家数据[对方id].角色:添加银子(价格, "摊位出售", 1)
		玩家数据[id].角色:日志记录(format("[摊位系统-购买5]购买召唤兽[%s][%s][%s][%s]，花费%s两银子,出售者信息：[%s][%s][%s]", 道具名称, 道具模型, 道具等级, 道具识别码, 价格, 账号, 对方id, 名称))
		玩家数据[对方id].角色:日志记录(format("[摊位系统-出售]出售召唤兽[%s][%s][%s][%s]，花费%s两银子,购买者信息：[%s][%s][%s]", 道具名称, 道具模型, 道具等级, 道具识别码, 价格, 账号1, id, 名称1))
		常规提示(对方id, "#W/出售#R/" .. 道具名称 .. "#W/成功！")
		常规提示(id, "#W/购买#R/" .. 道具名称 .. "#W/成功6！")

		玩家数据[id].召唤兽.数据[#玩家数据[id].召唤兽.数据 + 1] = table.loadstring(table.tostring(玩家数据[对方id].召唤兽.数据[数据.bb]))
		玩家数据[id].召唤兽.数据[#玩家数据[id].召唤兽.数据].认证码 = id .. "_" .. os.time() .. "_" .. 服务端参数.运行时间 .. "_" .. 取随机数(111111111111.0, 999999999999.0)
		玩家数据[对方id].摊位数据.bb[数据.bb] = nil
		玩家数据[对方id].召唤兽.数据[数据.bb] = nil
		local 现有数据 = {}
		local 临时摆摊数据 = {}

		for n = 1, 7 do
			if 玩家数据[对方id].召唤兽.数据[n] ~= nil and 玩家数据[对方id].召唤兽.数据[n] ~= 0 then
				现有数据[#现有数据 + 1] = {
					bb = 玩家数据[对方id].召唤兽.数据[n],
					编号 = n
				}
			end
		end

		玩家数据[对方id].召唤兽.数据 = {}

		for n = 1, #现有数据 do
			玩家数据[对方id].召唤兽.数据[n] = 现有数据[n].bb

			for i = 1, 7 do
				if 玩家数据[对方id].摊位数据.bb[i] ~= nil and 玩家数据[对方id].摊位数据.bb[i].id == 现有数据[n].编号 then
					临时摆摊数据[n] = {
						id = n,
						bb = 玩家数据[对方id].摊位数据.bb[i],
						价格 = 玩家数据[对方id].摊位数据.bb[i].价格
					}
				end
			end
		end

		玩家数据[对方id].摊位数据.bb = {}

		for n = 1, 7 do
			if 临时摆摊数据[n] ~= nil then
				玩家数据[对方id].摊位数据.bb[n] = 临时摆摊数据[n].bb
				玩家数据[对方id].摊位数据.bb[n].价格 = 临时摆摊数据[n].价格
				玩家数据[对方id].摊位数据.bb[n].id = 临时摆摊数据[n].id
			end
		end

		if 玩家数据[id].召唤兽.数据[#玩家数据[id].召唤兽.数据].参战信息 ~= nil then
			玩家数据[id].召唤兽.数据[#玩家数据[id].召唤兽.数据].参战信息 = nil
			玩家数据[对方id].角色.参战信息 = nil
			玩家数据[对方id].角色.数据.参战宝宝 = {}

			发送数据(玩家数据[对方id].连接id, 18, 玩家数据[对方id].角色.数据.参战宝宝)
		end

		发送数据(玩家数据[id].连接id, 3512, 玩家数据[id].召唤兽.数据)
		发送数据(玩家数据[对方id].连接id, 3512, 玩家数据[对方id].召唤兽.数据)
	end

	玩家数据[对方id].摊位数据.更新 = os.time()
	玩家数据[id].摊位查看 = os.time()

	self:索要其他玩家摊位(连接id, id, 对方id, 3522)
	self:索要摊位数据(玩家数据[对方id].连接id, 对方id, 3517)
end

function 道具处理类:索要其他玩家摊位(连接id, id, 对方id, 序号)
	if 摆摊假人处理类:假人信息(对方id) ~= nil then
		发送数据(玩家数据[id].连接id, 3520, 玩家数据[id].角色.数据.银子)

		摆摊假人处理类.npcUserList["" .. 对方id].更新 = os.time()
		玩家数据[id].摊位查看 = os.time()
		玩家数据[id].摊位id = 对方id

		摆摊假人处理类:索要摊位(玩家数据[id].连接id, 对方id)

		return
	end

	if 玩家数据[对方id] == nil or 玩家数据[对方id].摊位数据 == nil then
		常规提示(id, "#Y/这个摊位并不存在")

		return
	end

	玩家数据[id].摊位查看 = os.time()
	玩家数据[id].摊位id = 对方id

	发送数据(玩家数据[id].连接id, 3520, 玩家数据[id].角色.数据.银子)
	发送数据(玩家数据[id].连接id, 序号, {
		bb = 玩家数据[对方id].摊位数据.bb,
		物品 = 玩家数据[对方id].摊位数据.道具,
		id = 对方id,
		摊主名称 = 玩家数据[对方id].角色.数据.名称,
		名称 = 玩家数据[对方id].摊位数据.名称
	})
end

function 道具处理类:索要摊位数据(连接id, id, 序号)
	if 玩家数据[id].摊位数据 == nil then
		if 玩家数据[id].队伍 ~= 0 then
			常规提示(id, "#Y/组队状态下无法摆摊")

			return
		else
			local 地图 = 玩家数据[id].角色.数据.地图数据.编号

			if 地图 ~= 1001 and 地图 ~= 1501 and 地图 ~= 1070 and 地图 ~= 1092 and 地图 ~= 1208 and 地图 ~= 1226 and 地图 ~= 1040 then
				常规提示(id, "#Y/该场景无法摆摊")

				return
			elseif 玩家数据[id].角色.数据.等级 < 30 then
				常规提示(id, "#Y/小于30级无法摆摊")

				return
			end
		end

		玩家数据[id].摊位数据 = {
			名称 = "杂货摊位",
			道具 = {},
			bb = {},
			id = id,
			摊主 = 玩家数据[id].角色.数据.名称,
			更新 = os.time()
		}

		地图处理类:设置玩家摊位(id, "杂货摊位")
	end

	发送数据(玩家数据[id].连接id, 3512, 玩家数据[id].召唤兽.数据)
	发送数据(玩家数据[id].连接id, 3513, 玩家数据[id].道具:索要道具2(id))

	local bb = {}

	for i = 1, 7 do
		if 玩家数据[id].摊位数据.bb[i] ~= nil then
			bb[i] = 玩家数据[id].摊位数据.bb[i].价格
		end
	end

	local 道具 = {}

	for n = 1, 100 do
		if 玩家数据[id].摊位数据.道具[n] ~= nil then
			道具[n] = 玩家数据[id].摊位数据.道具[n].价格
		end
	end

	发送数据(连接id, 序号, {
		bb = bb,
		物品 = 道具,
		id = id,
		摊主名称 = 玩家数据[id].角色.数据.名称,
		名称 = 玩家数据[id].摊位数据.名称
	})
end

function 道具处理类:取消交易(id)
	if 玩家数据[id].交易信息 ~= nil then
		if 玩家数据[玩家数据[id].交易信息.id] ~= nil then
			发送数据(玩家数据[玩家数据[id].交易信息.id].连接id, 3511)
			常规提示(玩家数据[id].交易信息.id, "#Y/对方取消了交易")

			玩家数据[玩家数据[id].交易信息.id].交易信息 = nil
		end

		交易数据[玩家数据[id].交易信息.编号] = nil
		玩家数据[id].交易信息 = nil
	end
end

function 道具处理类:取指定道具(编号)
	return table.loadstring(table.tostring(self.数据[编号]))
end

function 道具处理类:发起交易处理(连接id, id, id1)
	if 玩家数据[id1] == nil then
		常规提示(id, "#Y/对方并不在线")

		return
	elseif 地图处理类:比较距离(id, id1, 5000) == false then
		常规提示(id, "#Y/你们的距离太远了")

		return
	elseif 玩家数据[id1].交易信息 ~= nil or 玩家数据[id1].摊位数据 ~= nil then
		常规提示(id, "#Y/对方正忙，请稍后再试")

		return
	elseif 玩家数据[id].交易信息 ~= nil then
		常规提示(id, "#Y/你上次的交易还没有结束哟~")

		return
	elseif 玩家数据[id].交易信息 ~= nil then
		常规提示(id, "#Y/你上次的交易还没有结束哟~")

		return
	elseif 玩家数据[id1].禁止交易 then
		常规提示(id, "#Y/对方没有打开交易开关")

		return
	elseif 玩家数据[id].角色.数据.等级 < 30 then
		常规提示(id, "#Y/等级小于30级不可交易")

		return
	end

	交易数据[id] = {
		[id] = {},
		[id1] = {}
	}

	常规提示(id, "你正在和" .. 玩家数据[id1].角色.数据.名称 .. "进行交易")
	常规提示(id1, "你正在和" .. 玩家数据[id].角色.数据.名称 .. "进行交易")
	发送数据(玩家数据[id].连接id, 3512, 玩家数据[id].召唤兽.数据)
	发送数据(玩家数据[id1].连接id, 3512, 玩家数据[id1].召唤兽.数据)
	发送数据(玩家数据[id].连接id, 3513, 玩家数据[id].道具:索要道具2(id))

	发送数据(玩家数据[id1].连接id, 3513, 玩家数据[id1].道具:索要道具2(id1))
	发送数据(玩家数据[id].连接id, 3514, {
		名称 = 玩家数据[id1].角色.数据.名称,
		等级 = 玩家数据[id1].角色.数据.等级
	})
	发送数据(玩家数据[id1].连接id, 3514, {
		名称 = 玩家数据[id].角色.数据.名称,
		等级 = 玩家数据[id].角色.数据.等级
	})

	玩家数据[id1].交易信息 = {
		编号 = id,
		id = id
	}
	玩家数据[id].交易信息 = {
		编号 = id,
		id = id1
	}
end

function 道具处理类:完成交易处理(id)
	local 交易id = 玩家数据[id].交易信息.编号
	local id1 = 玩家数据[id].交易信息.id

	if 交易数据[交易id][id].锁定 == nil or 交易数据[交易id][id].锁定 == false then
		常规提示(id, "#Y/请先锁定交易")

		return
	elseif 交易数据[交易id][id].锁定 and (交易数据[交易id][id1].锁定 == nil or 交易数据[交易id][id1].锁定 == false) then
		常规提示(id, "#Y/请耐心等待对方锁定交易状态")

		return
	end

	if id == 交易id and 交易数据[交易id][id].确定 == nil or 交易数据[交易id][id].确定 == false then
		交易数据[交易id][id].确定 = true
	elseif id ~= 交易id and 交易数据[交易id][id1].确定 == nil or 交易数据[交易id][id1].确定 == false then
		交易数据[交易id][id1].确定 = true
	end

	if id == 交易id and 交易数据[交易id][id1].确定 ~= nil and 交易数据[交易id][id1].确定 or id ~= 交易id and 交易数据[交易id][id].确定 ~= nil or 交易数据[交易id][id].确定 then
		if 玩家数据[id].战斗 ~= 0 or 玩家数据[id1].战斗 ~= 0 then
			常规提示(id, "#Y/战斗中无法使用此功能")
			常规提示(id1, "#Y/战斗中无法使用此功能")
			发送数据(玩家数据[id].连接id, 3511)
			发送数据(玩家数据[id1].连接id, 3511)

			玩家数据[id1].交易信息 = nil
			玩家数据[id].交易信息 = nil
			交易数据[交易id] = nil

			return
		elseif 玩家数据[id1].摊位数据 ~= nil or 玩家数据[id].摊位数据 ~= nil then
			常规提示(id, "#Y/摆摊状态下无法使用此功能")
			常规提示(id1, "#Y/摆摊状态下无法使用此功能")
			发送数据(玩家数据[id].连接id, 3511)
			发送数据(玩家数据[id1].连接id, 3511)

			玩家数据[id1].交易信息 = nil
			玩家数据[id].交易信息 = nil
			交易数据[交易id] = nil

			return
		elseif 地图处理类:比较距离(id, id1, 5000) == false then
			常规提示(id, "#Y/你们的距离太远了")
			常规提示(id1, "#Y/你们的距离太远了")
			发送数据(玩家数据[id].连接id, 3511)
			发送数据(玩家数据[id1].连接id, 3511)

			玩家数据[id1].交易信息 = nil
			玩家数据[id].交易信息 = nil
			交易数据[交易id] = nil

			return
		end

		local 银子 = 交易数据[交易id][id].银子 + 0
		local 银子1 = 交易数据[交易id][id1].银子 + 0

		if 玩家数据[id].角色.数据.银子 < 银子 then
			常规提示(id, "#Y/你没有那么多的银子")
			常规提示(id1, "#Y/对方没有那么多的银子")
			发送数据(玩家数据[id].连接id, 3511)
			发送数据(玩家数据[id1].连接id, 3511)

			玩家数据[id1].交易信息 = nil
			玩家数据[id].交易信息 = nil
			交易数据[交易id] = nil

			return
		elseif 玩家数据[id1].角色.数据.银子 < 银子1 then
			常规提示(id1, "#Y/你没有那么多的银子")
			常规提示(id, "#Y/对方没有那么多的银子")
			发送数据(玩家数据[id].连接id, 3511)
			发送数据(玩家数据[id1].连接id, 3511)

			交易数据[交易id] = nil
			玩家数据[id1].交易信息 = nil
			玩家数据[id].交易信息 = nil

			return
		end

		local 操作id = id
		local 对象id = id1

		for n = 1, #交易数据[交易id][操作id].道具 do
			local 道具id = 交易数据[交易id][操作id].道具[n].编号
			local 道具id1 = 玩家数据[操作id].角色.数据.道具[交易数据[交易id][操作id].道具[n].格子]

			if 道具id ~= 道具id1 or 玩家数据[操作id].道具.数据[道具id] == nil or 玩家数据[操作id].道具.数据[道具id1] == nil or 玩家数据[操作id].道具.数据[道具id1].识别码 ~= 交易数据[交易id][操作id].道具[n].认证码 then
				常规提示(操作id, "#Y/你此次交易的道具数据与锁定前的数据不匹配，本次交易取消")
				常规提示(对象id, "#Y/对方此次交易的道具数据与锁定前的数据不匹配，本次交易取消")
				发送数据(玩家数据[操作id].连接id, 3511)
				发送数据(玩家数据[对象id].连接id, 3511)

				玩家数据[id1].交易信息 = nil
				玩家数据[id].交易信息 = nil
				交易数据[交易id] = nil

				return
			elseif 玩家数据[操作id].道具.数据[道具id1].不可交易 or 玩家数据[操作id].道具.数据[道具id1].锁定 ~= nil then
				常规提示(操作id, "#Y/该道具不可交易给他人，本次交易取消")
				常规提示(对象id, "#Y/对方此次交易存在无法交易的道具，本次交易取消")
				发送数据(玩家数据[操作id].连接id, 3511)
				发送数据(玩家数据[对象id].连接id, 3511)

				玩家数据[id1].交易信息 = nil
				玩家数据[id].交易信息 = nil
				交易数据[交易id] = nil

				return
			end
		end

		local 操作id = id1
		local 对象id = id

		for n = 1, #交易数据[交易id][操作id].道具 do
			local 道具id = 交易数据[交易id][操作id].道具[n].编号
			local 道具id1 = 玩家数据[操作id].角色.数据.道具[交易数据[交易id][操作id].道具[n].格子]

			if 道具id ~= 道具id1 or 玩家数据[操作id].道具.数据[道具id] == nil or 玩家数据[操作id].道具.数据[道具id1] == nil or 玩家数据[操作id].道具.数据[道具id1].识别码 ~= 交易数据[交易id][操作id].道具[n].认证码 then
				常规提示(操作id, "#Y/你此次交易的道具数据与锁定前的数据不匹配，本次交易取消")
				常规提示(对象id, "#Y/对方此次交易的道具数据与锁定前的数据不匹配，本次交易取消")
				发送数据(玩家数据[操作id].连接id, 3511)
				发送数据(玩家数据[对象id].连接id, 3511)

				玩家数据[id1].交易信息 = nil
				玩家数据[id].交易信息 = nil
				交易数据[交易id] = nil

				return
			elseif 玩家数据[操作id].道具.数据[道具id1].不可交易 or 玩家数据[操作id].道具.数据[道具id1].锁定 ~= nil then
				常规提示(操作id, "#Y/该道具不可交易给他人，本次交易取消")
				常规提示(对象id, "#Y/对方此次交易存在无法交易的道具，本次交易取消")
				发送数据(玩家数据[操作id].连接id, 3511)
				发送数据(玩家数据[对象id].连接id, 3511)

				玩家数据[id1].交易信息 = nil
				玩家数据[id].交易信息 = nil
				交易数据[交易id] = nil

				return
			end
		end

		local 操作id = id
		local 对象id = id1

		for n = 1, #交易数据[交易id][操作id].bb do
			local bb编号 = 交易数据[交易id][操作id].bb[n].编号
			local 认证码 = 玩家数据[操作id].召唤兽.数据[bb编号].认证码

			if 认证码 ~= 交易数据[交易id][操作id].bb[n].认证码 then
				常规提示(操作id, "#Y/你此次交易的召唤兽数据与锁定前的数据不匹配，本次交易取消")
				常规提示(对象id, "#Y/对方此次交易的召唤兽数据与锁定前的数据不匹配，本次交易取消")
				发送数据(玩家数据[操作id].连接id, 3511)
				发送数据(玩家数据[对象id].连接id, 3511)

				玩家数据[id1].交易信息 = nil
				玩家数据[id].交易信息 = nil
				交易数据[交易id] = nil

				return
			elseif 玩家数据[操作id].召唤兽.数据[bb编号].不可交易 then
				常规提示(操作id, "#Y/该召唤兽不可交易给他人，本次交易取消")
				常规提示(对象id, "#Y/对方此次交易存在无法交易的召唤兽，本次交易取消")
				发送数据(玩家数据[操作id].连接id, 3511)
				发送数据(玩家数据[对象id].连接id, 3511)

				交易数据[交易id] = nil

				return
			elseif 玩家数据[操作id].召唤兽.数据[bb编号].统御 ~= nil then
				常规提示(操作id, "#Y/已被统御的召唤兽无法进行交易，本次交易取消")
				常规提示(对象id, "#Y/对方此次交易存在无法交易的召唤兽，本次交易取消")
				发送数据(玩家数据[操作id].连接id, 3511)
				发送数据(玩家数据[对象id].连接id, 3511)

				交易数据[交易id] = nil

				return
			elseif 玩家数据[操作id].召唤兽.数据[bb编号].参战信息 ~= nil or 玩家数据[操作id].召唤兽.数据[bb编号].助战参战 ~= nil then
				常规提示(操作id, "#Y/请先取消该召唤兽参战状态，本次交易取消")
				常规提示(对象id, "#Y/对方尚未取消召唤兽参战状态，本次交易取消")
				发送数据(玩家数据[操作id].连接id, 3511)
				发送数据(玩家数据[对象id].连接id, 3511)

				玩家数据[id1].交易信息 = nil
				玩家数据[id].交易信息 = nil
				交易数据[交易id] = nil

				return
			end
		end

		local 操作id = id1
		local 对象id = id

		for n = 1, #交易数据[交易id][操作id].bb do
			local bb编号 = 交易数据[交易id][操作id].bb[n].编号
			local 认证码 = 玩家数据[操作id].召唤兽.数据[bb编号].认证码

			if 认证码 ~= 交易数据[交易id][操作id].bb[n].认证码 then
				常规提示(操作id, "#Y/你此次交易的召唤兽数据与锁定前的数据不匹配，本次交易取消")
				常规提示(对象id, "#Y/对方此次交易的召唤兽数据与锁定前的数据不匹配，本次交易取消")
				发送数据(玩家数据[操作id].连接id, 3511)
				发送数据(玩家数据[对象id].连接id, 3511)

				玩家数据[id1].交易信息 = nil
				玩家数据[id].交易信息 = nil
				交易数据[交易id] = nil

				return
			elseif 玩家数据[操作id].召唤兽.数据[bb编号].不可交易 then
				常规提示(操作id, "#Y/该召唤兽不可交易给他人，本次交易取消")
				常规提示(对象id, "#Y/对方此次交易存在无法交易的召唤兽，本次交易取消")
				发送数据(玩家数据[操作id].连接id, 3511)
				发送数据(玩家数据[对象id].连接id, 3511)

				玩家数据[id1].交易信息 = nil
				玩家数据[id].交易信息 = nil
				交易数据[交易id] = nil

				return
			elseif 玩家数据[操作id].召唤兽.数据[bb编号].统御 ~= nil then
				常规提示(操作id, "#Y/已被坐骑统御的召唤兽不可交易给他人，本次交易取消")
				常规提示(对象id, "#Y/对方此次交易存在无法交易的召唤兽，本次交易取消")
				发送数据(玩家数据[操作id].连接id, 3511)
				发送数据(玩家数据[对象id].连接id, 3511)

				玩家数据[id1].交易信息 = nil
				玩家数据[id].交易信息 = nil
				交易数据[交易id] = nil

				return
			elseif 玩家数据[操作id].召唤兽.数据[bb编号].参战信息 ~= nil or 玩家数据[操作id].召唤兽.数据[bb编号].助战参战 ~= nil then
				常规提示(操作id, "#Y/请先取消该召唤兽参战状态，本次交易取消")
				常规提示(对象id, "#Y/对方尚未取消召唤兽参战状态，本次交易取消")
				发送数据(玩家数据[操作id].连接id, 3511)
				发送数据(玩家数据[对象id].连接id, 3511)

				玩家数据[id1].交易信息 = nil
				玩家数据[id].交易信息 = nil
				交易数据[交易id] = nil

				return
			end
		end

		local 道具数量 = 玩家数据[id].角色:取道具格子2()
		local 道具数量1 = 玩家数据[id1].角色:取道具格子2()

		if 道具数量 < #交易数据[交易id][id1].道具 then
			常规提示(id, "#Y/你身上的空间不够")
			常规提示(id1, "#Y/对方身上的空间不够")
			发送数据(玩家数据[id].连接id, 3511)
			发送数据(玩家数据[id1].连接id, 3511)

			玩家数据[id1].交易信息 = nil
			玩家数据[id].交易信息 = nil
			交易数据[交易id] = nil

			return
		elseif 道具数量1 < #交易数据[交易id][id].道具 then
			常规提示(id1, "#Y/你身上的空间不够")
			常规提示(id, "#Y/对方身上的空间不够")
			发送数据(玩家数据[id].连接id, 3511)
			发送数据(玩家数据[id1].连接id, 3511)

			玩家数据[id1].交易信息 = nil
			玩家数据[id].交易信息 = nil
			交易数据[交易id] = nil

			return
		end

		if 玩家数据[id].角色.数据.召唤兽携带数量 < #玩家数据[id].召唤兽.数据 + #交易数据[交易id][id1].bb then
			常规提示(id, "#Y/你可携带的召唤兽数量已达上限")
			常规提示(id1, "#Y/对方可携带的召唤兽数量已达上限")
			发送数据(玩家数据[id].连接id, 3511)
			发送数据(玩家数据[id1].连接id, 3511)

			玩家数据[id1].交易信息 = nil
			玩家数据[id].交易信息 = nil
			交易数据[交易id] = nil

			return
		elseif 玩家数据[id1].角色.数据.召唤兽携带数量 < #玩家数据[id1].召唤兽.数据 + #交易数据[交易id][id].bb then
			常规提示(id1, "#Y/你可携带的召唤兽数量已达上限")
			常规提示(id, "#Y/对方可携带的召唤兽数量已达上限")
			发送数据(玩家数据[id].连接id, 3511)
			发送数据(玩家数据[id1].连接id, 3511)

			玩家数据[id1].交易信息 = nil
			玩家数据[id].交易信息 = nil
			交易数据[交易id] = nil

			return
		end

		local 操作id = id
		local 对象id = id1
		local 账号 = 玩家数据[操作id].账号
		local 账号1 = 玩家数据[对象id].账号
		local 名称 = 玩家数据[操作id].角色.数据.名称
		local 名称1 = 玩家数据[对象id].角色.数据.名称

		if 交易数据[交易id][操作id].银子 > 0 then
			local 之前银子 = 玩家数据[操作id].角色.数据.银子
			玩家数据[操作id].角色.数据.银子 = 玩家数据[操作id].角色.数据.银子 - 交易数据[交易id][操作id].银子

			玩家数据[操作id].角色:日志记录(format("[交易系统-扣除银子]给了[%s][%s][%s]银子,银子数额%s,之前数额%s,余额%s", 账号1, 对象id, 名称1, 交易数据[交易id][操作id].银子, 之前银子, 玩家数据[操作id].角色.数据.银子))

			local 之前银子 = 玩家数据[对象id].角色.数据.银子
			玩家数据[对象id].角色.数据.银子 = 玩家数据[对象id].角色.数据.银子 + 交易数据[交易id][操作id].银子

			玩家数据[操作id].角色:日志记录(format("[交易系统-获得银子]获得[%s][%s][%s]银子,银子数额%s,之前数额%s,余额%s", 账号, 操作id, 名称, 交易数据[交易id][操作id].银子, 之前银子, 玩家数据[对象id].角色.数据.银子))
			常规提示(对象id, format("#Y/%s给了你%s两银子", 名称, 交易数据[交易id][操作id].银子))
			常规提示(操作id, format("#Y/你给了%s%s两银子", 名称1, 交易数据[交易id][操作id].银子))
		end

		for n = 1, #交易数据[交易id][操作id].道具 do
			local 道具id = 交易数据[交易id][操作id].道具[n].编号
			local 新格子 = 玩家数据[对象id].角色:取道具格子()
			local 新id = 玩家数据[对象id].道具:取新编号()
			玩家数据[对象id].道具.数据[新id] = 玩家数据[操作id].道具:取指定道具(道具id)
			玩家数据[对象id].角色.数据.道具[新格子] = 新id
			玩家数据[操作id].道具.数据[道具id] = nil
			玩家数据[操作id].角色.数据.道具[交易数据[交易id][操作id].道具[n].格子] = nil
			local 道具识别码 = 玩家数据[对象id].道具.数据[新id].识别码
			local 道具名称 = 玩家数据[对象id].道具.数据[新id].名称

			更改道具归属(道具识别码, 账号1, 对象id, 道具名称)
			玩家数据[操作id].角色:日志记录(format("[交易系统-扣除物品]给了[%s][%s][%s]物品,物品名称为%s,识别码为%s", 账号1, 对象id, 名称1, 道具名称, 道具识别码))
			玩家数据[对象id].角色:日志记录(format("[交易系统-获得物品]获得[%s][%s][%s]物品,物品名称为%s,识别码为%s", 账号, 操作id, 名称, 道具名称, 道具识别码))
			常规提示(对象id, format("#Y/%s给了你%s", 名称, 道具名称))
			常规提示(操作id, format("#Y/你给了%s%s", 名称1, 道具名称))
		end

		local 操作 = false

		for n = 1, #交易数据[交易id][操作id].bb do
			玩家数据[对象id].召唤兽.数据[#玩家数据[对象id].召唤兽.数据 + 1] = table.loadstring(table.tostring(玩家数据[操作id].召唤兽.数据[交易数据[交易id][操作id].bb[n].编号]))
			玩家数据[操作id].召唤兽.数据[交易数据[交易id][操作id].bb[n].编号] = nil
			local bb名称 = 玩家数据[对象id].召唤兽.数据[#玩家数据[对象id].召唤兽.数据].名称
			local bb模型 = 玩家数据[对象id].召唤兽.数据[#玩家数据[对象id].召唤兽.数据].模型
			local bb种类 = 玩家数据[对象id].召唤兽.数据[#玩家数据[对象id].召唤兽.数据].种类
			local bb等级 = 玩家数据[对象id].召唤兽.数据[#玩家数据[对象id].召唤兽.数据].等级
			local bb认证码 = 玩家数据[对象id].召唤兽.数据[#玩家数据[对象id].召唤兽.数据].认证码

			玩家数据[操作id].角色:日志记录(format("[交易系统-扣除bb]给了[%s][%s][%s]bb,名称为%s、模型为%s、种类为%s、等级为%s、认证码为%s", 账号1, 对象id, 名称1, bb名称, bb模型, bb种类, bb等级, bb认证码))
			玩家数据[对象id].角色:日志记录(format("[交易系统-获得bb]获得[%s][%s][%s]bb,名称为%s、模型为%s、种类为%s、等级为%s、认证码为%s", 账号, 操作id, 名称, bb名称, bb模型, bb种类, bb等级, bb认证码))

			操作 = true

			常规提示(对象id, format("#Y/%s给了你%s", 名称, bb名称))
			常规提示(操作id, format("#Y/你给了%s%s", 名称1, bb名称))
		end

		local 临时bb = {}

		if 操作 then
			for n, v in pairs(玩家数据[操作id].召唤兽.数据) do
				if 玩家数据[操作id].召唤兽.数据[n] ~= nil then
					临时bb[#临时bb + 1] = 玩家数据[操作id].召唤兽.数据[n]
				end
			end

			玩家数据[操作id].召唤兽.数据 = {}
			玩家数据[操作id].召唤兽.数据 = 临时bb

			发送数据(玩家数据[操作id].连接id, 3512, 玩家数据[操作id].召唤兽.数据)
			发送数据(玩家数据[对象id].连接id, 3512, 玩家数据[操作id].召唤兽.数据)
		end

		local 操作id = id1
		local 对象id = id
		local 账号 = 玩家数据[操作id].账号
		local 账号1 = 玩家数据[对象id].账号
		local 名称 = 玩家数据[操作id].角色.数据.名称
		local 名称1 = 玩家数据[对象id].角色.数据.名称

		if 交易数据[交易id][操作id].银子 > 0 then
			local 之前银子 = 玩家数据[操作id].角色.数据.银子
			玩家数据[操作id].角色.数据.银子 = 玩家数据[操作id].角色.数据.银子 - 交易数据[交易id][操作id].银子

			玩家数据[操作id].角色:日志记录(format("[交易系统-扣除银子]给了[%s][%s][%s]银子,银子数额%s,之前数额%s,余额%s", 账号1, 对象id, 名称1, 交易数据[交易id][操作id].银子, 之前银子, 玩家数据[操作id].角色.数据.银子))

			local 之前银子 = 玩家数据[对象id].角色.数据.银子
			玩家数据[对象id].角色.数据.银子 = 玩家数据[对象id].角色.数据.银子 + 交易数据[交易id][操作id].银子

			玩家数据[操作id].角色:日志记录(format("[交易系统-获得银子]获得[%s][%s][%s]银子,银子数额%s,之前数额%s,余额%s", 账号, 操作id, 名称, 交易数据[交易id][操作id].银子, 之前银子, 玩家数据[对象id].角色.数据.银子))
			常规提示(对象id, format("#Y/%s给了你%s两银子", 名称, 交易数据[交易id][操作id].银子))
			常规提示(操作id, format("#Y/你给了%s%s两银子", 名称1, 交易数据[交易id][操作id].银子))
		end

		for n = 1, #交易数据[交易id][操作id].道具 do
			local 道具id = 交易数据[交易id][操作id].道具[n].编号
			local 新格子 = 玩家数据[对象id].角色:取道具格子()
			local 新id = 玩家数据[对象id].道具:取新编号()
			玩家数据[对象id].道具.数据[新id] = 玩家数据[操作id].道具:取指定道具(道具id)
			玩家数据[对象id].角色.数据.道具[新格子] = 新id
			玩家数据[操作id].道具.数据[道具id] = nil
			玩家数据[操作id].角色.数据.道具[交易数据[交易id][操作id].道具[n].格子] = nil
			local 道具识别码 = 玩家数据[对象id].道具.数据[新id].识别码
			local 道具名称 = 玩家数据[对象id].道具.数据[新id].名称

			更改道具归属(道具识别码, 账号1, 对象id, 道具名称)
			玩家数据[操作id].角色:日志记录(format("[交易系统-扣除物品]给了[%s][%s][%s]物品,物品名称为%s,识别码为%s", 账号1, 对象id, 名称1, 道具名称, 道具识别码))
			玩家数据[对象id].角色:日志记录(format("[交易系统-获得物品]获得[%s][%s][%s]物品,物品名称为%s,识别码为%s", 账号, 操作id, 名称, 道具名称, 道具识别码))
			常规提示(对象id, format("#Y/%s给了你%s", 名称, 道具名称))
			常规提示(操作id, format("#Y/你给了%s%s", 名称1, 道具名称))
		end

		local 操作 = false

		for n = 1, #交易数据[交易id][操作id].bb do
			玩家数据[对象id].召唤兽.数据[#玩家数据[对象id].召唤兽.数据 + 1] = table.loadstring(table.tostring(玩家数据[操作id].召唤兽.数据[交易数据[交易id][操作id].bb[n].编号]))
			玩家数据[操作id].召唤兽.数据[交易数据[交易id][操作id].bb[n].编号] = nil
			玩家数据[对象id].召唤兽.数据[#玩家数据[对象id].召唤兽.数据].认证码 = 对象id .. "_" .. os.time() .. "_" .. 服务端参数.运行时间 .. "_" .. 取随机数(111111111111.0, 999999999999.0)
			local bb名称 = 玩家数据[对象id].召唤兽.数据[#玩家数据[对象id].召唤兽.数据].名称
			local bb模型 = 玩家数据[对象id].召唤兽.数据[#玩家数据[对象id].召唤兽.数据].模型
			local bb种类 = 玩家数据[对象id].召唤兽.数据[#玩家数据[对象id].召唤兽.数据].种类
			local bb等级 = 玩家数据[对象id].召唤兽.数据[#玩家数据[对象id].召唤兽.数据].等级
			local bb认证码 = 玩家数据[对象id].召唤兽.数据[#玩家数据[对象id].召唤兽.数据].认证码

			玩家数据[操作id].角色:日志记录(format("[交易系统-扣除bb]给了[%s][%s][%s]bb,名称为%s、模型为%s、种类为%s、等级为%s、认证码为%s", 账号1, 对象id, 名称1, bb名称, bb模型, bb种类, bb等级, bb认证码))
			玩家数据[对象id].角色:日志记录(format("[交易系统-获得bb]获得[%s][%s][%s]bb,名称为%s、模型为%s、种类为%s、等级为%s、认证码为%s", 账号, 操作id, 名称, bb名称, bb模型, bb种类, bb等级, bb认证码))

			操作 = true

			常规提示(对象id, format("#Y/%s给了你%s", 名称, bb名称))
			常规提示(操作id, format("#Y/你给了%s%s", 名称1, bb名称))
		end

		local 临时bb = {}

		if 操作 then
			for n, v in pairs(玩家数据[操作id].召唤兽.数据) do
				if 玩家数据[操作id].召唤兽.数据[n] ~= nil then
					临时bb[#临时bb + 1] = 玩家数据[操作id].召唤兽.数据[n]
				end
			end

			玩家数据[操作id].召唤兽.数据 = {}
			玩家数据[操作id].召唤兽.数据 = 临时bb

			发送数据(玩家数据[操作id].连接id, 3512, 玩家数据[操作id].召唤兽.数据)
			发送数据(玩家数据[对象id].连接id, 3512, 玩家数据[对象id].召唤兽.数据)
		end

		发送数据(玩家数据[id].连接id, 3511, 玩家数据[id].召唤兽.数据)
		发送数据(玩家数据[id1].连接id, 3511, 玩家数据[id1].召唤兽.数据)
		道具刷新(id)
		道具刷新(id1)

		交易数据[交易id] = nil
		玩家数据[id].交易信息 = nil
		玩家数据[id1].交易信息 = nil
	end
end

function 道具处理类:设置交易数据(连接id, id, 数据)
	if 玩家数据[id].交易信息 == nil then
		常规提示(id, "#Y/交易信息错误，本次交易取消")
		发送数据(玩家数据[id].连接id, 3511)

		玩家数据[id].交易信息 = nil
		交易数据[id] = nil

		return
	end

	local 交易id = 玩家数据[id].交易信息.编号
	local 对方id = 玩家数据[id].交易信息.id

	if 交易数据[交易id][id].锁定 and 交易数据[交易id][对方id].锁定 == nil then
		常规提示(id, "#Y/请耐心等待对方锁定交易状态")

		return
	end

	local 道具数据 = {}
	local bb数据 = {}
	local 银子数据 = 数据.银子
	交易数据[交易id][id].道具 = {}
	交易数据[交易id][id].bb = {}
	交易数据[交易id][id].银子 = 银子数据 + 0
	交易数据[交易id][id].锁定 = true

	for n = 1, 3 do
		local 道具格子 = 数据.道具[n]

		if 道具格子 ~= nil then
			道具id = 玩家数据[id].角色.数据.道具[道具格子]
			道具数据[#道具数据 + 1] = self:取指定道具(道具id)
			交易数据[交易id][id].道具[#交易数据[交易id][id].道具 + 1] = {
				认证码 = 道具数据[#道具数据].识别码,
				格子 = 道具格子,
				编号 = 道具id
			}
		end
	end

	for n = 1, 3 do
		local bb编号 = 数据.bb[n]

		if bb编号 ~= nil then
			bb数据[#bb数据 + 1] = table.loadstring(table.tostring(玩家数据[id].召唤兽.数据[bb编号]))
			交易数据[交易id][id].bb[#交易数据[交易id][id].bb + 1] = {
				认证码 = bb数据[#bb数据].认证码,
				编号 = bb编号
			}
		end
	end

	发送数据(连接id, 3508)
	常规提示(id, "#Y/你已经锁定了交易状态，对方锁定交易状态后点击确定即可完成交易")
	常规提示(对方id, "#Y/对方已经锁定了交易状态，等你锁定交易状态后点击确定即可完成交易")
	发送数据(玩家数据[对方id].连接id, 3510, {
		bb = bb数据,
		道具 = 道具数据,
		银子 = 银子数据
	})
end

function 道具处理类:系统给予处理(连接id, id, 数据)
	local 事件 = 玩家数据[id].给予数据.事件

	if 事件 == "打造角色装备" then
		local 任务id = 玩家数据[id].角色:取任务(5)

		if 任务id == 0 then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		if 检查格子(id) == false then
			常规提示(id, "#Y/你身上没有足够的空间")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if 道具id == nil or self.数据[道具id] == nil then
			常规提示(id, "#Y/你的东西呢?")

			return
		end

		if self.数据[道具id].名称 ~= 任务数据[任务id].石头 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 任务数据[任务id].数量 > 1 and self.数据[道具id].数量 < 任务数据[任务id].数量 then
			常规提示(id, "#Y/该物品的数量无法达到要求")

			return
		end

		if 任务数据[任务id].数量 > 1 then
			self.数据[道具id].数量 = self.数据[道具id].数量 - 任务数据[任务id].数量
		end

		if self.数据[道具id].数量 == nil or self.数据[道具id].数量 < 1 then
			self.数据[道具id] = nil
			玩家数据[id].角色.数据.道具[数据.格子[1]] = nil
		end

		刷新道具行囊单格(id, "道具", 数据.格子[1], 道具id)

		if 任务数据[任务id].打造类型 == "装备" then
			玩家数据[id].装备:添加强化打造装备(id, 任务id, nil, 任务数据[任务id].百炼, 任务数据[任务id].制造者, 任务数据[任务id].熟练度)
		elseif 任务数据[任务id].打造类型 == "160装备" then
			打造处理类:添加强化打造160装备(id, 任务id, 玩家数据[id].角色.数据.辅助技能, 任务数据[任务id].熟练度)
			常规提示(id, "#Y/打造成功")
		elseif 任务数据[任务id].打造类型 == "灵饰" then
			local 临时id = self:取新编号()
			local 临时格子 = 玩家数据[id].角色:取道具格子()
			local 道具 = 物品类()

			道具:置对象(任务数据[任务id].名称)

			道具.级别限制 = 任务数据[任务id].级别
			道具.幻化等级 = 0
			self.数据[临时id] = 道具
			self.数据[临时id].部位类型 = 任务数据[任务id].部位

			self:灵饰处理(id, 临时id, 任务数据[任务id].级别, 1, 任务数据[任务id].部位, 任务数据[任务id].熟练度)

			self.数据[临时id].灵饰 = true
			self.数据[临时id].耐久 = 500
			self.数据[临时id].制造者 = (任务数据[任务id].制造者 or 玩家数据[id].角色.数据.名称) .. "强化打造"
			玩家数据[id].角色.数据.道具[临时格子] = 临时id

			常规提示(id, "#Y/你得到了#R/" .. self.数据[临时id].名称)
			玩家数据[id].角色:取消任务(任务id)

			任务数据[任务id] = nil

			刷新道具行囊单格(id, "道具", 临时格子, 临时id)
		end
	elseif 事件 == "侠义任务物品" then
		local 任务id = 玩家数据[id].角色:取任务(346)

		if 任务id == 0 then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id] == nil then
			常规提示(id, "#Y/请检查你给予的物品是否存在")
			道具刷新(id)

			return
		end

		local 名称 = self.数据[道具id].名称
		local 所需物品 = 任务数据[任务id].物品

		if 名称 == "魔兽要诀" or 名称 == "召唤兽内丹" then
			名称 = self.数据[道具id].附带技能
		elseif 名称 == "怪物卡片" then
			名称 = self.数据[道具id].造型
		elseif 名称 == "鬼谷子" then
			名称 = self.数据[道具id].子类
		end

		if 名称 ~= 所需物品 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 名称 == 所需物品 then
			if (所需物品 == "青龙石" or 所需物品 == "白虎石" or 所需物品 == "朱雀石" or 所需物品 == "玄武石") and self.数据[道具id].数量 < 10 then
				常规提示(id, "#Y/你给予的物品不满足条件，强化石需要数量为10个")

				return
			end

			if self.数据[道具id] ~= nil and self.数据[道具id].数量 ~= nil and self.数据[道具id].数量 > 1 then
				if 所需物品 == "青龙石" or 所需物品 == "白虎石" or 所需物品 == "朱雀石" or 所需物品 == "玄武石" then
					self.数据[道具id].数量 = self.数据[道具id].数量 - 10
				else
					self.数据[道具id].数量 = self.数据[道具id].数量 - 1
				end

				任务处理类:完成侠义任务(任务id, id)
				道具刷新(id)
			else
				self.数据[道具id] = nil
				玩家数据[id].角色.数据.道具[数据.格子[1]] = nil

				任务处理类:完成侠义任务(任务id, id)
				道具刷新(id)
			end
		end
	elseif 事件 == "熔合角色装备" then
		local 任务id = 玩家数据[id].角色:取任务(7758)

		if 任务id == 0 then
			常规提示(id, "#Y/你没有这样的任务")

			return
		elseif 检查格子(id) == false then
			常规提示(id, "#Y/你身上没有足够的空间")

			return
		end

		if not 任务数据[任务id].完成 then
			if 数据.格子[1] == nil or 数据.格子[2] == nil or 数据.格子[3] == nil then
				常规提示(id, "#Y/我需要3件物品你是不是少给了我一些物品啊")

				return
			end

			local 检测通过 = {
				0,
				0,
				0
			}

			for i = 1, 3 do
				local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[i]]

				if self.数据[道具id] == nil then
					常规提示(id, "#Y/请检查你给予的物品是否存在")
					道具刷新(id)

					return
				end

				local 名称 = self.数据[道具id].名称

				if self.数据[道具id].名称 == "高级魔兽要诀" then
					名称 = self.数据[道具id].附带技能
				elseif self.数据[道具id].名称 == "高级召唤兽内丹" then
					名称 = self.数据[道具id].附带技能
				elseif self.数据[道具id].名称 == "怪物卡片" then
					名称 = self.数据[道具id].造型
				end

				for n = 1, 3 do
					if 名称 == 任务数据[任务id].物品[n] and self.数据[道具id].数量 == nil then
						检测通过[i] = 1

						break
					elseif 名称 == 任务数据[任务id].物品[n] and self.数据[道具id].数量 ~= nil and self.数据[道具id].数量 >= 99 then
						检测通过[i] = 1

						break
					end
				end
			end

			for i = 1, 3 do
				if 检测通过[i] == 0 then
					常规提示(id, "#Y/请检查给予的物品是否是对方需要的物品,或则药品数量是否达到99个")

					return
				end
			end

			if 任务数据[任务id].分类 == 1 then
				玩家数据[id].装备:添加强化打造装备(id, 任务id, 1)
			elseif ygsj() <= 50 then
				玩家数据[id].装备:添加熔合装备属性(id, 任务id)
			else
				玩家数据[id].装备:添加熔合装备属性(id, 任务id)
			end

			for i = 1, 3 do
				local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[i]]

				if self.数据[道具id].数量 ~= nil then
					self.数据[道具id].数量 = self.数据[道具id].数量 - 99
				end

				if self.数据[道具id].数量 == nil or self.数据[道具id].数量 < 1 then
					self.数据[道具id] = nil
					玩家数据[id].角色.数据.道具[数据.格子[i]] = nil
				end
			end
		elseif 任务数据[任务id].分类 == 1 then
			玩家数据[id].装备:添加强化打造装备(id, 任务id, 1)
		else
			玩家数据[id].装备:添加熔合装备属性(id, 任务id)
		end

		道具刷新(id)
	elseif 事件 == "给予银票" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if 活动次数查询(id, "跑商") == false then
			return
		end

		if self.数据[道具id].名称 ~= "帮派银票" then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if self.数据[道具id].初始金额 < self.数据[道具id].完成金额 then
			常规提示(id, "#Y/还没赚够足够的银票，你这是糊弄我呢？")

			return
		end

		if os.time() - 玩家数据[id].角色.数据.跑商时间 <= 15 or 玩家数据[id].角色.数据.跑商时间 == nil then
			__S服务:输出("玩家" .. id .. " 疑似重复刷跑商任务!")
			写配置("./ip封禁.ini", "ip", 玩家数据[id].ip, 1)
			写配置("./ip封禁.ini", "ip", 玩家数据[id].ip .. " 疑似重复刷跑商任务,玩家ID:" .. id, 1)
			发送数据(玩家数据[id].连接id, 998, "请注意你的角色异常！已经对你进行封IP")

			return
		elseif os.time() - 玩家数据[id].角色.数据.跑商时间 <= 30 then
			常规提示(id, "#Y/我这里正在忙着整理商品，请你稍后再来！(30秒内仅可上交一次)")

			return
		end

		玩家数据[id].角色.数据.道具[数据.格子[1]] = nil
		玩家数据[id].角色.数据.跑商 = nil
		玩家数据[id].角色.数据.跑商时间 = nil
		local 帮派编号 = 玩家数据[id].角色.数据.帮派数据.编号
		帮派数据[帮派编号].成员数据[id].跑商 = 帮派数据[帮派编号].成员数据[id].跑商 + 1

		添加活动次数(id, "跑商")
		玩家数据[id].道具:一键回收跑商物品(id, id)
		玩家数据[id].角色:添加银子(100000, "帮派跑商", 1)
		玩家数据[id].角色:添加经验(100000, "帮派跑商", 1)
		玩家数据[id].角色:添加储备(600000, "帮派跑商", 1)

		if ygsj() <= 90 then
			玩家数据[id].道具:给予道具(id, "金柳露", 取随机数(1, 5))
			常规提示(id, "#Y你获得了金柳露")
		else
			玩家数据[id].道具:给予道具(id, "超级金柳露", 取随机数(1, 5))
			常规提示(id, "#Y你获得了超级金柳露")
		end

		if ygsj() <= 1 then
			if ygsj() <= 50 then
				奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(11, 12))
			else
				奖励名称[id] = 快捷给道具(id, "百炼精铁", 取随机数(11, 12))
			end

			广播消息({
				频道 = "xt",
				内容 = format("#S(跑商活动)#R/%s#Y在跑商活动中如有神助，妙笔生花，获得了#G/%s", 玩家数据[id].角色.数据.名称, 奖励名称[id])
			})
		end

		local 跑商帮贡 = 跑商帮贡奖励 * (1 + math.floor((self.数据[道具id].初始金额 - 180000) / 150000))

		添加帮贡(id, 跑商帮贡)

		帮派数据[帮派编号].繁荣度 = 帮派数据[帮派编号].繁荣度 + 80
		帮派数据[帮派编号].帮派资金.当前 = 帮派数据[帮派编号].帮派资金.当前 + self.数据[道具id].初始金额

		if 帮派数据[帮派编号].帮派资金.上限 < 帮派数据[帮派编号].帮派资金.当前 then
			帮派数据[帮派编号].帮派资金.当前 = 帮派数据[帮派编号].帮派资金.上限
		end

		广播帮派消息({
			频道 = "bp",
			内容 = "[帮派总管]#R/" .. 玩家数据[id].角色.数据.名称 .. "#Y/完成跑商任务，帮派资金增加了#R/" .. self.数据[道具id].初始金额 .. "#Y/两。"
		}, 帮派编号)
		常规提示(id, "#Y/感谢少侠为帮派的发展做出的贡献！")
		刷新道具行囊单格(id, "道具", 数据.格子[1], nil)
	elseif 事件 == "给予突厥密函" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].名称 ~= "突厥密函" then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		local 密函数量 = self.数据[道具id].数量 + 0

		if 扣除背包位置道具(id, 数据.格子[1], 密函数量) == false then
			return
		end

		添加军功(id, 密函数量)

		local 之前 = 玩家数据[id].角色.数据.军功.全部 - 密函数量

		if 之前 < 5000 then
			if 玩家数据[id].角色.数据.军功.全部 >= 100 and 之前 < 100 then
				玩家数据[id].角色:添加称谓(id, "敢为人先")
			end

			if 玩家数据[id].角色.数据.军功.全部 >= 500 and 之前 < 500 then
				玩家数据[id].角色:添加称谓(id, "家园卫士")
			end

			if 玩家数据[id].角色.数据.军功.全部 >= 1000 and 之前 < 1000 then
				玩家数据[id].角色:添加称谓(id, "突厥杀手")
			end

			if 玩家数据[id].角色.数据.军功.全部 >= 3000 and 之前 < 3000 then
				玩家数据[id].角色:添加称谓(id, "侠之大者")
			end

			if 玩家数据[id].角色.数据.军功.全部 >= 5000 then
				玩家数据[id].角色:添加称谓(id, "为国为民")
			end
		end
	elseif 事件 == "给予金银锦盒" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].名称 ~= "金银锦盒" then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		local 锦盒数量 = self.数据[道具id].数量 + 0

		if 扣除背包位置道具(id, 数据.格子[1], 锦盒数量) == false then
			return
		end

		local 增加帮派资金 = 锦盒数量 * 金银锦盒资金
		local 增加帮贡 = 锦盒数量 * 金银锦盒帮贡

		添加帮贡(id, 增加帮贡)

		帮派数据[玩家数据[id].角色.数据.帮派数据.编号].帮派资金.当前 = 帮派数据[玩家数据[id].角色.数据.帮派数据.编号].帮派资金.当前 + 增加帮派资金
		帮派数据[玩家数据[id].角色.数据.帮派数据.编号].帮派资材.当前 = 帮派数据[玩家数据[id].角色.数据.帮派数据.编号].帮派资材.当前 + qz(增加帮派资金 / 100)

		if 帮派数据[玩家数据[id].角色.数据.帮派数据.编号].帮派资材.上限 < 帮派数据[玩家数据[id].角色.数据.帮派数据.编号].帮派资材.当前 then
			帮派数据[玩家数据[id].角色.数据.帮派数据.编号].帮派资材.当前 = 帮派数据[玩家数据[id].角色.数据.帮派数据.编号].帮派资材.上限
		end

		常规提示(id, "#Y/你为帮派增加了#R/" .. 增加帮派资金 .. "#Y/两帮派资金")
		广播帮派消息({
			频道 = "bp",
			内容 = "[金库总管]#G/" .. 玩家数据[id].角色.数据.名称 .. "#Y/上交了#R" .. 锦盒数量 .. "#Y个金银锦盒为帮派增加了帮派资金#R/" .. 增加帮派资金 .. "#Y/两银子、帮派资材#R/" .. qz(增加帮派资金 / 100) .. "#Y/点。#93"
		}, 玩家数据[id].角色.数据.帮派数据.编号)
	elseif 事件 == "精铁兑换打造熟练度" then
		for i = 1, #数据.格子 do
			local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[i]]

			if 书铁列表1[self.数据[道具id].名称] == nil then
				常规提示(id, "#Y/对方需要的不是这种物品")
			elseif self.数据[道具id].不可交易 == true then
				常规提示(id, "#G/不可交易#Y的书铁无法兑换熟练度！")
			elseif self.数据[道具id].子类 > 100 then
				常规提示(id, "#Y/只有100级及以下的书铁才能兑换熟练度")
			else
				local 增加熟练度 = 书铁兑换熟练度[qz(self.数据[道具id].子类 / 10)] * (self.数据[道具id].数量 or 1)

				if 扣除背包位置道具(id, 数据.格子[i], self.数据[道具id].数量 or 1) ~= false then
					打造添加熟练度(id, id, 增加熟练度)
				end
			end
		end
	elseif 事件 == "用90级铁换100-120级铁" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].名称 ~= "百炼精铁" then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if self.数据[道具id].子类 ~= 90 then
			常规提示(id, "#Y/只有90级的精铁才能兑换")

			return
		end

		if 玩家数据[id].角色.数据.银子 < 10000000 then
			常规提示(id, "你没有1000万两银子")

			return
		end

		if 玩家数据[id].角色.数据.当前经验 < 10000000 then
			常规提示(id, "你没有1000万经验")

			return
		end

		玩家数据[id].角色:扣除经验(10000000, "铁兑换", 1)
		玩家数据[id].角色:扣除银子(10000000, 0, 0, "铁兑换", 1)

		if 取随机数(1, 110) <= 80 then
			玩家数据[id].道具:给予书铁(id, {
				12,
				12
			}, "精铁")
		else
			玩家数据[id].道具:给予书铁(id, {
				12,
				10
			}, "精铁")
		end

		常规提示(id, "你兑换了精铁")

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end
	elseif 事件 == "用90级书换100-120级书" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].名称 ~= "制造指南书" then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if self.数据[道具id].子类 ~= 90 then
			常规提示(id, "#Y/只有90级的指南书才能兑换")

			return
		end

		if 玩家数据[id].角色.数据.银子 < 10000000 then
			常规提示(id, "你没有1000万两银子")

			return
		end

		if 玩家数据[id].角色.数据.当前经验 < 10000000 then
			常规提示(id, "你没有1000万经验")

			return
		end

		玩家数据[id].角色:扣除经验(10000000, "铁兑换", 1)
		玩家数据[id].角色:扣除银子(10000000, 0, 0, "铁兑换", 1)

		if 取随机数(1, 110) <= 80 then
			玩家数据[id].道具:给予书铁(id, {
				12,
				12
			}, "指南书")
		else
			玩家数据[id].道具:给予书铁(id, {
				12,
				10
			}, "指南书")
		end

		常规提示(id, "你兑换了精铁")

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end
	elseif 事件 == "上交特殊兽决" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].名称 ~= "特殊魔兽要诀" then
			添加最后对话(id, "#Y/你确定给我的是特殊魔兽要诀么？")

			return
		else
			local 数量 = qz(self.数据[道具id].数量 or 1)

			if 数量 > 0 then
				if 扣除背包位置道具(id, 数据.格子[1], 数量) == false then
					return
				end

				玩家数据[id].角色.数据.上交特殊兽决 = (玩家数据[id].角色.数据.上交特殊兽决 or 0) + 数量

				添加最后对话(id, "你上交了#R" .. 数量 .. "#W张特殊魔兽要诀。")
			else
				添加最后对话(id, "#Y/你上交的特殊魔兽要诀数量异常！")
			end
		end
	elseif 事件 == "上交魔兽残卷" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].名称 ~= "魔兽残卷" then
			添加最后对话(id, "#Y/你确定给我的是魔兽残卷么")

			return
		else
			local 所需数量 = 100

			if 所需数量 <= self.数据[道具id].数量 then
				if 扣除背包位置道具(id, 数据.格子[1], 所需数量) == false then
					return
				end

				玩家数据[id].角色.数据.魔兽残卷 = 0
				奖励名称[id] = 快捷给道具(id, "特殊魔兽要诀", 1)

				添加最后对话(id, "不错，这个#Y" .. 奖励名称[id] .. "#W就赠予少侠吧！")
				广播消息({
					频道 = "xt",
					内容 = format("#S(魔兽残卷)#R/%s#Y累计收集了100份#R魔兽残卷#Y,受到#R唐王#Y大加赞赏,特赐下#G/%s#Y以示褒奖！" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			else
				添加最后对话(id, "#Y/等少侠凑齐100份再来找朕吧！")
			end
		end
	elseif 事件 == "九黎副武器还原" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 2 or (self.数据[道具id].分类 ~= 4 or self.数据[道具id].子类 ~= 911) and (self.数据[道具id].分类 ~= 3 or self.数据[道具id].子类 ~= 910) or self.数据[道具id].原始造型 == nil then
			添加最后对话(id, "#Y/你交给我的是什么鬼东西？！")

			return
		else
			if 玩家数据[id].角色.数据.门派 ~= "九黎城" then
				if not 玩家数据[id].角色:扣除银子(1000000, 0, 0, "九黎副武器还原", 1) then
					return
				end
			end

			添加最后对话(id, "#W/我已将这把#Y" .. self.数据[道具id].名称 .. "#重铸成#Y" .. self.数据[道具id].原始造型 .. "#、怎么样，我的铸兵术厉害吧！")

			self.数据[道具id].名称 = self.数据[道具id].原始造型 .. ""
			self.数据[道具id].光武拓印 = self.数据[道具id].原始光武拓印
			self.数据[道具id].原始造型 = nil

			if self.数据[道具id].防御 == 0 then
				self.数据[道具id].防御 = nil
			end

			self.数据[道具id].分类 = 3
			local sj = 取物品数据(self.数据[道具id].名称)
			self.数据[道具id].子类 = sj[4] + 0

			if (self.数据[道具id].伤害 or 0) == 0 then
				self.数据[道具id].伤害 = 1
			end

			if (self.数据[道具id].命中 or 0) == 0 then
				self.数据[道具id].命中 = 1
			end

			self.数据[道具id].角色限制 = sj[7]

			常规提示(id, "#Y/你获得了#P" .. self.数据[道具id].名称)
			刷新道具行囊单格(id, "道具", 数据.格子[1], 道具id)
		end
	elseif 事件 == "转换九黎副武器(乾)" or 事件 == "转换九黎副武器(坤)" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 2 or self.数据[道具id].分类 ~= 3 or self.数据[道具id].子类 == 910 then
			添加最后对话(id, "#Y/你交给我的是什么鬼东西？！")

			return
		else
			if 玩家数据[id].角色.数据.门派 ~= "九黎城" then
				if not 玩家数据[id].角色:扣除银子(1000000, 0, 0, "转换九黎副武器", 1) then
					return
				end
			end

			local aa = {
				"顽石双斧",
				"镔铁双斧",
				"黑曜双斧",
				"枭首双斧",
				"破军双斧",
				"隳城双戚",
				"飞头蛮",
				"竹叶青",
				"鲛煞",
				"啖月",
				"义战",
				"恶来",
				"烬世野火",
				"九州海沸",
				"八狱末劫",
				"罗喉计都",
				"非天"
			}
			local 武器名称 = aa[self.数据[道具id].级别限制 / 10 + 1]
			self.数据[道具id].原始造型 = self.数据[道具id].名称 .. ""

			if 事件 == "转换九黎副武器(乾)" then
				武器名称 = 武器名称 .. "(乾)"
				self.数据[道具id].名称 = 武器名称

				添加最后对话(id, "#W/我已将这把#Y" .. self.数据[道具id].原始造型 .. "#重铸成#Y" .. 武器名称 .. "#、怎么样，我的铸兵术厉害吧！")
			else
				武器名称 = 武器名称 .. "(坤)"
				self.数据[道具id].名称 = 武器名称

				添加最后对话(id, "#W/我已将这把#Y" .. self.数据[道具id].原始造型 .. "#重铸成#Y" .. 武器名称 .. "#、怎么样，我的铸兵术厉害吧！")
			end

			self.数据[道具id].名称 = 武器名称 .. ""

			if self.数据[道具id].光武拓印 ~= nil then
				self.数据[道具id].原始光武拓印 = self.数据[道具id].光武拓印 .. ""
				self.数据[道具id].光武拓印 = nil
			end

			local sj = 取物品数据(self.数据[道具id].名称)
			self.数据[道具id].原始子类 = self.数据[道具id].子类 + 0
			self.数据[道具id].分类 = sj[3]
			self.数据[道具id].子类 = sj[4]
			self.数据[道具id].角色限制 = sj[7]

			if (self.数据[道具id].伤害 or 0) == 0 then
				self.数据[道具id].伤害 = 1
			end

			if (self.数据[道具id].命中 or 0) == 0 then
				self.数据[道具id].命中 = 1
			end

			if self.数据[道具id].分类 == 4 then
				self.数据[道具id].防御 = self.数据[道具id].防御 or 0
			end

			常规提示(id, "#Y/你获得了#P" .. 武器名称)
			刷新道具行囊单格(id, "道具", 数据.格子[1], 道具id)
		end
	elseif 事件 == "更换五行" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if (self.数据[道具id].总类 ~= 2 or self.数据[道具id].分类 ~= 3) and self.数据[道具id].分类 ~= 4 and self.数据[道具id].总类 ~= 1000 then
			添加最后对话(id, "#Y/你交给我的是什么鬼东西？！")

			return
		elseif 玩家数据[id].角色:扣除仙玉(5000, "更换五行", id) == false then
			添加最后对话(id, "#Y/更换五行乃偷天换日之举，所需法力甚大，没有个#P5000#Y仙玉是行不通的。")

			return
		else
			local 原本五行 = self.数据[道具id].五行 or 取五行()
			local 更换五行 = 取五行()

			while 原本五行 == 更换五行 do
				更换五行 = 取五行()
			end

			self.数据[道具id].五行 = 更换五行

			添加最后对话(id, "#W/更换五行成功！少侠的这件物品五行属性由#G" .. 原本五行 .. "#W转为了#P" .. 更换五行 .. "#W！")
			刷新道具行囊单格(id, "道具", 数据.格子[1], 道具id)

			return
		end
	elseif 事件 == "通用给物品" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 快捷对话模版[id].物品

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是#G/" .. 快捷对话模版[id].物品 .. "#W/，你给我的这个能当饭吃吗？#4")

			return
		end

		if 快捷对话模版[id].索引 == "孩子拜师" then
			local 参战召唤兽 = 0

			for i = 1, #玩家数据[id].召唤兽.数据 do
				if 玩家数据[id].召唤兽.数据[i].参战信息 ~= nil then
					参战召唤兽 = i
				end
			end

			if 参战召唤兽 == 0 then
				添加最后对话(id, "无功不受禄、你先把要拜入我门下的子女设置参战再给我这东西吧。")

				return
			elseif 玩家数据[id].召唤兽.数据[参战召唤兽].门派 ~= nil then
				添加最后对话(id, "岂有此理！你的子女已经拜入他人门下，你给我这东西作甚？拿走拿走！")

				return
			elseif 玩家数据[id].召唤兽.数据[参战召唤兽].种类 ~= "孩子" then
				添加最后对话(id, "拿走拿走！以为什么山精野怪都能拜入我的门下吗？！")

				return
			end

			local 拜入门派 = 门派名称[门派师傅1[玩家数据[id].最后对话.名称]]

			if Q_孩子门派法术[拜入门派] ~= nil then
				if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
					return
				end

				玩家数据[id].召唤兽.数据[参战召唤兽].门派 = 拜入门派
				玩家数据[id].召唤兽.数据[参战召唤兽].奇经八脉 = DeepCopy(Q_孩子门派经脉[拜入门派])
				玩家数据[id].召唤兽.数据[参战召唤兽].门派法术 = DeepCopy(Q_孩子门派法术[拜入门派])

				常规提示(id, "#Y/恭喜你的#R" .. 玩家数据[id].召唤兽.数据[参战召唤兽].名称 .. "#Y成功拜入#G" .. 拜入门派 .. "#Y门下！")

				for i = 1, #Q_孩子门派法术[拜入门派] do
					常规提示(id, "#Y/你的#R" .. 玩家数据[id].召唤兽.数据[参战召唤兽].名称 .. "#Y学会了门派法术【#G" .. Q_孩子门派法术[拜入门派][i] .. "#Y】")
				end

				添加最后对话(id, "不错不错、我就收下#R" .. 玩家数据[id].召唤兽.数据[参战召唤兽].名称 .. "#W这位弟子吧，切记今后要努力修习本门本领、日后行走三界莫失了本门颜面。")

				return
			else
				print(拜入门派)
				常规提示(id, "#Y/遇到错误！")

				return
			end
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		if 快捷对话模版[id].索引 == "含冤小白龙1" then
			xsjc4(id, 4)
			添加最后对话(id, "哇，看来你还真的是有钱人啊，真令人羡慕......这根破鞭子就交给你吧！")
			常规提示(id, "#Y/你获得了#G玄天铁鞭")
		elseif 快捷对话模版[id].索引 == "含冤小白龙2" then
			xsjc4(id, 8)
			添加最后对话(id, "唉，小白龙的事情我也知道了，不是我不愿意帮忙，实在是我这里也出了大事。", nil, {
				置快捷对话模版(快捷对话模版[id][2], "哦，什么事那么严重？"),
				置快捷对话模版(快捷对话模版[id][1], "日前下了一场血雨，一阵腥风过后大雁塔的镇塔之宝定魂珠就不见了。大雁塔镇压十万妖魔，从来没有出过这样的大事，现在塔中妖魔蠢蠢欲动，若让他们逃逸四方，天下就要大乱了"),
				置快捷对话模版(快捷对话模版[id][2], "是谁大胆偷走镇塔之宝，不顾天下苍生的死活？"),
				置快捷对话模版(快捷对话模版[id][1], "那偷宝之人神通广大，我也摸不清他的来历，目前最首要的任务是封印塔内妖魔，大侠能不能帮我巡视塔内，最近有几个魔魅不太安分")
			})
		elseif 快捷对话模版[id].索引 == "含冤小白龙3" then
			xsjc4(id, 25)
			添加最后对话(id, "镇塔之宝！太感谢你了，你避免了一场危难！对了，观音姐姐前些时候来过这里，说是让我把一件东西交给找回镇塔之宝的人。我想这东西应该是交给小白龙的吧。")
			常规提示(id, "#Y/你获得了#G观音姐姐的信物")
		elseif 快捷对话模版[id].索引 == "女娲神迹1" then
			添加最后对话(id, "好酒！果然名不虚传，对了，你来找俺何事？", nil, {
				置快捷对话模版(快捷对话模版[id][2], "是这样的，大圣最近是不是去过一趟北俱芦洲？"),
				置快捷对话模版(快捷对话模版[id][1], "你怎么知道的？"),
				置快捷对话模版(快捷对话模版[id][2], "神殿传送仙女说的，大圣到了神殿门口为什么不进去？"),
				置快捷对话模版(快捷对话模版[id][1], "那个女人真八婆，这事就说来话长了，你也知道俺是从石头里蹦出来的。俺想知道天地间那么多石头，为什么只有东胜神洲的这块如此有灵气。"),
				置快捷对话模版(快捷对话模版[id][1], "我常常在想这件事，当三界中传出女娲神殿的入口重现世间时，我的心莫名其妙的一阵狂跳。"),
				置快捷对话模版(快捷对话模版[id][1], "我总觉得这个神殿与我有密切的联系，但是当我要进去的时候，却又有些害怕。"),
				置快捷对话模版(快捷对话模版[id][2], "不会吧，大圣上天入地无所不能，还怕这个？"),
				置快捷对话模版(快捷对话模版[id][1], "我不知道探究自己的由来是好事还是坏事。"),
				置快捷对话模版(快捷对话模版[id][2], "大圣如果信得过我，就让我来替你去调查吧。"),
				置快捷对话模版(快捷对话模版[id][1], "这……"),
				置快捷对话模版(快捷对话模版[id][2], "如果大圣觉得自己去调查比较好，那我也不会多管闲事。"),
				置快捷对话模版(快捷对话模版[id][1], "罢了罢了,就麻频你替我去查看一下究竟吧,我想那看门的仙女应该知道点什么，就是那个送人进去的女仙,你可以先去问问她。")
			})
			xsjc5(id, 4)
		elseif 快捷对话模版[id].索引 == "女娲神迹2" then
			添加最后对话(id, "嗯？我这是怎么了？我的记忆……", nil, {
				置快捷对话模版(快捷对话模版[id][2], "小紫姑娘你现在感觉怎么样，孙悟空的事情你现在想起来了么？"),
				置快捷对话模版(快捷对话模版[id][1], "孙悟空？原来如此，我知道你的来意了。"),
				置快捷对话模版(快捷对话模版[id][2], "哦？！"),
				置快捷对话模版(快捷对话模版[id][1], "你是来询问孙悟空身世的吧，他现在应该做的是保唐僧西行取经普渡众生……唉，罢了，其实孙悟空诞生的仙石之前似乎受到过邪气的侵入，所以他的性格经常发生变化。请你去转告他，魔由心生，一切只有靠他自己来解决。"),
				置快捷对话模版(快捷对话模版[id][2], "（这小紫姑娘应该是女娲娘娘的转世化身）好、好的……"),
				置快捷对话模版(快捷对话模版[id][1], "还有近来有股邪恶力量从地府深处散发，破坏了女娲娘娘神殿的封印。他们准备联手三界的恶徒闯入神殿夺去里面的宝物。"),
				置快捷对话模版(快捷对话模版[id][2], "这股邪恶力量可能是刑天，小紫姑娘，你了解地府刑天的事情么。"),
				置快捷对话模版(快捷对话模版[id][1], "刑天？怪不得……盘丝岭的春三十娘应该就是刑天等人在地面上的联系人，你去转告孙悟空")
			})
			xsjc5(id, 8)
		elseif 快捷对话模版[id].索引 == "八戒悟空1" then
			添加最后对话(id, "包子真好吃！木偶还给你。")
			常规提示(id, "#Y/你获得了#G木偶")
			xsjc6(id, 24)
		elseif 快捷对话模版[id].索引 == "八戒悟空2" then
			xsjc6(id, 40)
		elseif 快捷对话模版[id].索引 == "八戒悟空3" then
			xsjc6(id, 41)
		elseif 快捷对话模版[id].索引 == "八戒悟空4" then
			xsjc6(id, 42)
			添加最后对话(id, "什么云霓的转世呀，孙悟空呀我不知道呀……咦？我是谁？我吃了什么？", nil, {
				置快捷对话模版(快捷对话模版[id][2], "总算让你吃下去了，失心疯好了吧！快告诉我，孙悟空可是藏在这山头？！他和那晶晶姑娘有何纠葛？"),
				置快捷对话模版(快捷对话模版[id][1], "啊啊我想起来了，被压在大石头底下的那个猴子好像说了自己叫孙悟空，对了，我可不是什么大帮主，我是佛祖派来看守孙悟空的天兵天将，春十三娘是佛祖座下灵蛛，和我一样是防止云霓再次来纠缠孙悟空的！糟糕了云霓又来了我得禀告如来，咦不对，来的那个叫晶晶姑娘呀……"),
				置快捷对话模版(快捷对话模版[id][2], "这到底是怎么回事？到底是云霓还是晶晶姑娘？"),
				置快捷对话模版(快捷对话模版[id][1], "我也搞糊涂了，孙悟空曾给过我一块玉佩，说如果是云霓来了将玉佩交给她她自然就会死心，到时他也可以从这大刀山下出来，少侠你拿去给那晶晶姑娘看看吧！")
			})
			常规提示(id, "#Y/你获得了#G玉佩")
		end
	elseif 事件 == "上交熊胆" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "熊胆"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是#G/熊胆#W/，你给我的这个能当饭吃吗？#4")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		xsjc1(id, 5)
		玩家数据[id].道具:给予道具(id, "烤鸭", 1, nil, nil, "专用")
		常规提示(id, "#Y/你获得一只#G烤鸭")
	elseif 事件 == "上交餐风饮露" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "餐风饮露"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是#G/餐风饮露#W/，你给我的这个能当饭吃吗？#4")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		xsjc2(id, 12)
		玩家数据[id].道具:给予道具(id, "定神香", 1, nil, nil, "专用")
		常规提示(id, "#Y/你获得一只#G定神香")
	elseif 事件 == "上交特别的美味" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "臭豆腐"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是#G/特别的美味#W/，你给我的这个能当饭吃吗？#4")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		xsjc2(id, 32)
		玩家数据[id].道具:给予道具(id, "避水珠", 1, nil, nil, "专用")
		常规提示(id, "#Y/你获得一只#G避水珠")
		添加最后对话(id, "谢谢你,#G臭豆腐#真是美味至极啊!")
	elseif 事件 == "上交佛光舍利子" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "佛光舍利子"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是#G/佛光舍利子#W/，你给我的这个能当饭吃吗？#4")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		xsjc2(id, 16)
		添加最后对话(id, [[
玄奘法师是我从河里#G捡回来的孩子
并非外面的八卦消息所传,他根本就#Y不可能是我的野种
虽然我年轻的时候也#P风流倜傥#,#S玉树临风#,但那都是多少年前的事情了
我看这孩子慧根深厚,与佛有缘,才把他#Y带回寺院的
这里有他出生时留下的#R血书#,你拿给他看吧]])
	elseif 事件 == "上交吃的" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "烤鸭"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是#G/有肉的东西#W/，你给我的这个能当饭吃吗？#4")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		xsjc2(id, 37)
		添加最后对话(id, "谢谢你年轻人,我这就和你一起去见我媳妇\n真的有好多年都没见了,我以为他们都死了#15")
	elseif 事件 == "上交火凤之睛" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "火凤之睛"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我要的不是这个!")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		if 玩家数据[id].角色:取任务(996) ~= 0 and 任务数据[玩家数据[id].角色:取任务(996)].进程 == 7 then
			xsjc3(id, 8)
		end

		添加最后对话(id, "很好,现在你拿着仙露,回去找清风吧!")
	elseif 事件 == "上交九转回魂丹" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "九转回魂丹"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是#G/九转回魂丹#W/，你给我的这个能当饭吃吗？#4")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		xsjc2(id, 25)
		添加最后对话(id, [[
玄奘法师清醒了过来
看着#R血书#的内容:
(此儿讳陈光蕊,官除江洲令,妾名#Y殷温娇#,亦为相门女
贼子#G刘洪杀夫霸妾#,冒官江州,妾恐贼加害此遗腹子
忍痛弃之江中,若蒙善人#S拾养#,妾必感深嗯,街环以报)
原来我身世中藏此#R深仇大恨#,#S父母之仇,不能报复#,玄奘又何以为人?
我要拿起#Y屠刀#,还俗报仇!#4]])
	elseif 事件 == "上交定神香" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "定神香"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是#G/定神香#W/，你给我的这个能当饭吃吗？#4")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		xsjc2(id, 13)
		添加最后对话(id, [[
少侠可还记得打伤我的#Y白琉璃?
她盗取了化生寺的#G佛光舍利子
还请少侠继续帮帮忙,去调查一下#S它的来历
和它交手时,发现它并非妖物,而是有#Y通灵仙气#的东西
你可以去#R天宫#打探一下]])
	elseif 事件 == "上交百色花" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "百色花"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是#G/百色花#W/，你给我的这个能当饭吃吗？#4")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		xsjc2(id, 5)

		local 名称 = self:给予书铁(id, {
			3,
			4
		})

		常规提示(id, "#Y你获得了#R" .. 名称[1])
	elseif 事件 == "上交烤鸭" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "烤鸭"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是#G/烤鸭#W/，你给我的这个能当饭吃吗？#4")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		xsjc1(id, 6)
		添加最后对话(id, "法事我会筹办的,你无需担心了\n你现在把我的#G安魂草#交给#Y老孙头\n让他安定心神不在被鬼魂骚扰")
		常规提示(id, "#Y/你获得一捆#G安魂草")
	elseif 事件 == "上交地狱灵芝" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "地狱灵芝"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是#G/地狱灵芝#W/，你给我的这个能当饭吃吗？#4")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		xsjc1(id, 11)
		任务处理类:设置新手指引任务(id)
		添加最后对话(id, [[
谢谢你治好了我的病,事情的#S来龙去脉#是这样的:
多年前我和一个朋友遇到海啸,#Y我和他双双落入海里
就在#R危难之际#我们的身边出现一块#G木板#,但这块木板#P只能够一个人浮起来
我的那位朋友#C为了让我活下#来就把木板让给了我,最终我活了下来,#S我的朋友却死了
不知为何他死后#Y化作厉鬼在海底沉船#兴风作浪
要了不少无辜人的性命,我每年都会让#G道士去超度他
可是都没用,他的#Z怨气太重了#,少侠既然可以搞到地狱灵芝,想必也有#G超凡本事
今年的超度就麻烦少侠你了
不管成功与否,到时候都可以到我这里#Y领取酬劳]])
	elseif 事件 == "上交枯萎的金莲" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "枯萎的金莲"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是#G/枯萎的金莲#W/，你给我的这个能当饭吃吗？#4")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务数据[玩家数据[id].角色:取任务(400)].进程 = 12

		玩家数据[id].角色:刷新任务跟踪()
		发送数据(玩家数据[id].连接id, 3533.2)
	elseif 事件 == "真是他妈太臭了" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "丁香水"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "看来这个宝箱不需要这件物品#4")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务处理类:设置妖风支线(id)
	elseif 事件 == "上交雪人物品" then
		local 任务id = 玩家数据[id].角色:取任务(7760)

		if 任务id == 0 then
			常规提示(id, "#Y/你好像没有这样的任务！")

			return
		elseif 任务数据[任务id].分类 ~= 2 then
			常规提示(id, "#Y/你的任务好像不是这类！")

			return
		else
			local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
			local 名称 = self.数据[道具id].名称
			local 任务物品 = 任务数据[任务id].物品

			if 名称 ~= 任务物品 then
				常规提示(id, "#Y/我要的不是这个物品哟！")

				return
			end

			if self.数据[道具id].数量 ~= nil then
				self.数据[道具id].数量 = self.数据[道具id].数量 - 1
			end

			if self.数据[道具id].数量 == nil or self.数据[道具id].数量 < 1 then
				self.数据[道具id] = nil
				玩家数据[id].角色.数据.道具[数据.格子[1]] = nil
			end

			任务处理类:完成雪人任务(id)
			刷新道具行囊单格(id, "道具", 数据.格子[1], 道具id)
		end
	elseif 事件 == "上交雪人道具" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = self.数据[道具id].名称

		if 名称 ~= "雪人鼻子" and 名称 ~= "雪人帽子" and 名称 ~= "雪人眼睛" then
			常规提示(id, "#Y/你交给我的是神马东西！")

			return
		elseif 雪人活动.上限 <= 雪人活动[名称] then
			常规提示(id, "#Y/本轮活动该道具已经满了,等待下一轮再前来吧！")

			return
		else
			local 应扣数量 = 雪人活动.上限 - 雪人活动[名称]

			if self.数据[道具id].数量 < 应扣数量 then
				应扣数量 = self.数据[道具id].数量
			end

			local 经验 = 10000 * 应扣数量
			local 银子 = 5000 * 应扣数量
			self.数据[道具id].数量 = self.数据[道具id].数量 - 应扣数量
			雪人活动[名称] = 雪人活动[名称] + 应扣数量

			if 玩家数据[id].角色.数据.春节雪人 == nil then
				玩家数据[id].角色.数据.春节雪人 = 应扣数量
			else
				玩家数据[id].角色.数据.春节雪人 = 玩家数据[id].角色.数据.春节雪人 + 应扣数量
			end

			玩家数据[id].角色:添加储备(银子, "雪人上交" .. 应扣数量, 1)
			玩家数据[id].角色:添加经验(经验, "雪人上交" .. 应扣数量, 1)
			常规提示(id, "#Y/你获得了" .. 应扣数量 .. "点雪人积分！")

			if self.数据[道具id].数量 < 1 then
				self.数据[道具id] = nil
				玩家数据[id].角色.数据.道具[数据.格子[1]] = nil
			end

			刷新道具行囊单格(id, "道具", 数据.格子[1], 道具id)

			for i, v in pairs(雪人活动) do
				if i ~= "上限" and v < 雪人活动.上限 then
					return
				end
			end

			for i, v in pairs(玩家数据) do
				if 玩家数据[i] ~= nil and 玩家数据[i].管理 == nil then
					玩家数据[i].道具:发放雪人奖励(i)
				end
			end

			for i, v in pairs(雪人活动) do
				if i ~= "上限" then
					雪人活动[i] = 0
				end
			end
		end
	elseif 事件 == "上交心魔宝珠" then
		if 玩家数据[id].角色.数据.等级 >= 175 then
			常规提示(id, "#Y/你已经脱离了新手阶段，无法获得此种奖励")

			return
		elseif 玩家数据[id].角色.数据.等级 < 1 then
			常规提示(id, "#Y/只有等级达到1级的玩家才可获得此种奖励")

			return
		elseif 心魔宝珠[id] ~= nil and 心魔宝珠[id] >= 20 then
			常规提示(id, "#Y/请明天再来上交心魔宝珠")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "心魔宝珠"
		local 数量 = 50

		if self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 数量 > 1 and self.数据[道具id].数量 < 数量 then
			常规提示(id, "#Y/该物品的数量至少要50个才能上交")

			return
		end

		if self.数据[道具id] ~= nil and (self.数据[道具id].数量 or 0) >= 50 then
			while self.数据[道具id] ~= nil and (self.数据[道具id].数量 or 0) >= 50 and 活动次数查询(id, "心魔宝珠", 1) == true do
				self.数据[道具id].数量 = self.数据[道具id].数量 - 数量

				if self.数据[道具id].数量 == nil or self.数据[道具id].数量 < 1 then
					self.数据[道具id] = nil
					玩家数据[id].角色.数据.道具[数据.格子[1]] = nil
				end

				通用给奖励(id, {
					活跃度 = 2,
					经验 = {
						3000,
						4000
					},
					储备 = {
						3000,
						3500
					}
				}, "心魔宝珠")

				if 玩家数据[id].角色:取任务(402) ~= 0 and 任务数据[玩家数据[id].角色:取任务(402)].进程 == 4 then
					任务数据[玩家数据[id].角色:取任务(402)].进程 = 5

					玩家数据[id].角色:刷新任务跟踪()
				end
			end
		end

		刷新道具行囊单格(id, "道具", 数据.格子[1], 道具id)
	elseif 事件 == "官职任务上交物品" then
		local 任务id = 玩家数据[id].角色:取任务(110)

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "？？？"

		if 任务数据[任务id].分类 == 3 then
			名称 = "情报"
		elseif 任务数据[任务id].分类 == 4 then
			名称 = 任务数据[任务id].物品
		end

		if self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务处理类:完成官职任务(id, 任务数据[任务id].分类)
	elseif 事件 == "节日活动上交物品" then
		local 任务id = 玩家数据[id].角色:取任务(411)

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "？？？"

		if 任务数据[任务id].分类 == 3 then
			名称 = "情报"
		elseif 任务数据[任务id].分类 == 4 then
			名称 = 任务数据[任务id].药品
		end

		if self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if self.数据[道具id] ~= nil and self.数据[道具id].数量 ~= nil and self.数据[道具id].数量 > 1 then
			self.数据[道具id].数量 = self.数据[道具id].数量 - 1

			任务处理类:完成节日活动(id, 任务数据[任务id].分类)
			刷新道具行囊单格(id, "道具", 数据.格子[1], 道具id)
		else
			if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
				return
			end

			任务处理类:完成节日活动(id, 任务数据[任务id].分类)
		end
	elseif 事件 == "门派任务上交物品" then
		local 任务id = 玩家数据[id].角色:取任务(111)

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 任务数据[任务id].物品

		if self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		local 双倍 = nil

		if 任务数据[任务id].品质 ~= nil and 任务数据[任务id].品质 <= self.数据[道具id].阶品 then
			双倍 = 1
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务处理类:完成门派任务(id, 4, 双倍)
	elseif 事件 == "青龙任务给予药品" then
		local 任务id = 玩家数据[id].角色:取任务(301)

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 任务数据[任务id].药品

		if self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务处理类:完成青龙任务(任务id, id, 2)
	elseif 事件 == "青龙任务给予烹饪" then
		local 任务id = 玩家数据[id].角色:取任务(301)

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 任务数据[任务id].烹饪

		if self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务处理类:完成青龙任务(任务id, id, 3)
	elseif 事件 == "玄武任务给予药品" then
		local 任务id = 玩家数据[id].角色:取任务(302)

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 任务数据[任务id].药品

		if 道具id == nil or self.数据[道具id].名称 == nil or self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		local id组 = 取id组(id)

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务处理类:完成玄武任务(任务id, id组, 2)
	elseif 事件 == "玄武任务给予烹饪" then
		local 任务id = 玩家数据[id].角色:取任务(302)

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 任务数据[任务id].烹饪

		if self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		local id组 = 取id组(id)

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务处理类:完成玄武任务(任务id, id组, 3)
	elseif 事件 == "坐骑任务给予烹饪" then
		local 任务id = 玩家数据[id].角色:取任务(307)

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 任务数据[任务id].烹饪

		if self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务数据[任务id].分类 = 3

		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "太白金星",
			模型 = "太白金星",
			对话 = format("天宫的千里眼能眼观天下，他也许知道天马的消息！"),
			选项 = {
				"我这就去"
			}
		})
		玩家数据[id].角色:刷新任务跟踪()
	elseif 事件 == "坐骑任务给予药品" then
		local 任务id = 玩家数据[id].角色:取任务(307)

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 任务数据[任务id].药品

		if self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务数据[任务id].分类 = 12

		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "大大王",
			模型 = "大大王",
			对话 = format("听说马儿跑了到建业一带，少侠可以去那里找找"),
			选项 = {
				"我这就去建业看看"
			}
		})
		玩家数据[id].角色:刷新任务跟踪()
	elseif 事件 == "飞升任务给予药品" then
		local 任务id = 玩家数据[id].角色:取任务("飞升剧情")

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].名称 ~= 任务数据[任务id].药品.药品.名称 and self.数据[道具id].名称 ~= 任务数据[任务id].药品.药品1.名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if self.数据[道具id].名称 == 任务数据[任务id].药品.药品.名称 then
			if 任务数据[任务id].药品.药品.获得 == true then
				常规提示(id, "#Y/这个药品已经给过了、对方需要的是另一种。")

				return
			end

			任务数据[任务id].药品.药品.获得 = true
		elseif self.数据[道具id].名称 == 任务数据[任务id].药品.药品1.名称 then
			if 任务数据[任务id].药品.药品1.获得 == true then
				常规提示(id, "#Y/这个药品已经给过了、对方需要的是另一种。")

				return
			end

			任务数据[任务id].药品.药品1.获得 = true
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		if 任务数据[任务id].药品.药品.获得 and 任务数据[任务id].药品.药品1.获得 then
			if 任务数据[任务id].进程 == 3 then
				任务数据[任务id].进程 = 4
				玩家数据[id].角色.数据.剧情.飞升 = 任务数据[任务id].进程 + 0

				发送数据(玩家数据[id].连接id, 1501, {
					名称 = "太上老君",
					模型 = "男人_太上老君",
					对话 = format("嗯，你做的很好。看来你的确潜心向道。我要向玉皇大帝引见你，让你获得进行仙界的试练资格。")
				})
				发送数据(玩家数据[id].连接id, 39)

				任务数据[任务id].药品 = nil

				玩家数据[id].角色:刷新任务跟踪()
			elseif 任务数据[任务id].进程 == 5 and 任务数据[任务id].四法宝.炼金鼎 == false then
				任务数据[任务id].四法宝.炼金鼎 = true

				玩家数据[id].道具:给予道具(id, "炼金鼎", 1, nil, nil, "专用")
				发送数据(玩家数据[id].连接id, 39)
				发送数据(玩家数据[id].连接id, 1501, {
					名称 = "镇元大仙",
					模型 = "镇元大仙",
					对话 = format("嗯，好！这就是你要的炼金鼎！")
				})
				玩家数据[id].角色:刷新任务跟踪()
			end
		elseif 任务数据[任务id].进程 == 3 then
			发送数据(玩家数据[id].连接id, 1501, {
				名称 = "太上老君",
				模型 = "男人_太上老君",
				对话 = format("还有一味药呢")
			})
		elseif 任务数据[任务id].进程 == 5 then
			发送数据(玩家数据[id].连接id, 1501, {
				名称 = "镇元大仙",
				模型 = "镇元大仙",
				对话 = format("还有一味药呢")
			})
		end
	elseif 事件 == "飞升任务给予武器" then
		local 任务id = 玩家数据[id].角色:取任务("飞升剧情")

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 任务数据[任务id].所需武器

		if self.数据[道具id].名称 ~= 名称 and self.数据[道具id].总类 ~= 2 and self.数据[道具id].分类 ~= 3 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务数据[任务id].四法宝.定海针 = true
		任务数据[任务id].触发龙宫 = nil

		玩家数据[id].道具:给予道具(id, "定海针", 1, nil, nil, "专用")
		发送数据(玩家数据[id].连接id, 39)
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "东海龙王",
			模型 = "东海龙王",
			对话 = format("这是镇海针，你要好好护送它到玉帝那！")
		})
		玩家数据[id].角色:刷新任务跟踪()
	elseif 事件 == "飞升任务给予法器" then
		local 任务id = 玩家数据[id].角色:取任务("飞升剧情")

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		for i = 1, #数据.格子 do
			local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[i]]

			if self.数据[道具id].名称 ~= "定海针" and self.数据[道具id].名称 ~= "避火诀" and self.数据[道具id].名称 ~= "修篁斧" and self.数据[道具id].名称 ~= "炼金鼎" then
				常规提示(id, "#Y/对方需要的不是这种物品")

				return
			end

			if 扣除背包位置道具(id, 数据.格子[i], 1) == false then
				return
			end

			任务数据[任务id].四法宝.进度 = 任务数据[任务id].四法宝.进度 + 1

			if 任务数据[任务id].四法宝.进度 >= 4 then
				发送数据(玩家数据[id].连接id, 1501, {
					名称 = "玉皇大帝",
					模型 = "男人_玉帝",
					对话 = format("要你找的这四样宝贝暗含四象之妙，可以激发你的潜力，如果再加上地藏王的不死壤，那么五行妙法就齐备了。可惜自从大禹治水后，就再也没有人见过不死壤了。天庭已经没有什么好教你的了，你再去人界修炼妙法吧。")
				})

				任务数据[任务id].进程 = 6
				玩家数据[id].角色.数据.剧情.飞升 = 任务数据[任务id].进程

				玩家数据[id].角色:刷新任务跟踪()
			else
				发送数据(玩家数据[id].连接id, 1501, {
					名称 = "玉皇大帝",
					模型 = "男人_玉帝",
					对话 = format("剩余的几样东西呢？")
				})
			end
		end

		发送数据(玩家数据[id].连接id, 39)
	elseif 事件 == "飞升任务给予烹饪" then
		local 任务id = 玩家数据[id].角色:取任务("飞升剧情")

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 任务数据[任务id].烹饪

		if self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务数据[任务id].征求意见.春十三娘 = true
		任务数据[任务id].触发春十三娘 = nil

		常规提示(id, "你获得春十三娘的同意")
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "春十三娘",
			模型 = "春十三娘",
			对话 = format("嗯，东西不错。我没什么意见了，反正不死壤我也没兴趣。")
		})
		玩家数据[id].角色:刷新任务跟踪()
	elseif 事件 == "飞升任务给予兽诀" then
		local 任务id = 玩家数据[id].角色:取任务("飞升剧情")

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 任务数据[任务id].所需兽诀

		if self.数据[道具id].附带技能 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务数据[任务id].征求意见.大大王 = true
		任务数据[任务id].触发大大王 = nil
		任务数据[任务id].触发兽诀 = nil

		常规提示(id, "获得大大王的同意")
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "大大王",
			模型 = "大大王",
			对话 = format("嗯，不错不错，我没意见了！")
		})
		玩家数据[id].角色:刷新任务跟踪()
	elseif 事件 == "法宝任务给予药品" then
		local 任务id = 玩家数据[id].角色:取任务(308)

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 任务数据[任务id].物品

		if self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		if 玩家数据[id].角色.法宝进程 == 1 then
			发送数据(玩家数据[id].连接id, 1501, {
				名称 = "金童子",
				模型 = "男人_道童",
				对话 = format("少侠已经集齐法宝合成的材料了，可以来天宫找我领取内丹任务进行法宝合成哦")
			})
		end

		任务处理类:完成法宝任务(任务id, id, 2)
	elseif 事件 == "法宝任务给予烹饪" then
		local 任务id = 玩家数据[id].角色:取任务(308)

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 任务数据[任务id].物品

		if self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		if 玩家数据[id].角色.法宝进程 == 1 then
			发送数据(玩家数据[id].连接id, 1501, {
				名称 = "金童子",
				模型 = "男人_道童",
				对话 = format("少侠已经集齐法宝合成的材料了，可以来天宫找我领取内丹任务进行法宝合成哦")
			})
		end

		任务处理类:完成法宝任务(任务id, id, 3)
	elseif 事件 == "渡劫任务上交武器" then
		local 任务id = 玩家数据[id].角色:取任务(8800)

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = 任务数据[任务id].所需武器

		if self.数据[道具id].名称 ~= 名称 and self.数据[道具id].总类 ~= 2 and self.数据[道具id].分类 ~= 3 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		发送数据(玩家数据[id].连接id, 39)
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "蚩尤之子",
			模型 = "知了王",
			对话 = format("很好，陷阱已经布置完成了，等待勇士们和天冷曰妄空的到来。")
		})
		地图处理类:删除单位(玩家数据[id].待删除单位.地图编号, 玩家数据[id].待删除单位.单位编号)

		玩家数据[id].待删除单位 = nil
		玩家数据[id].角色.数据.渡劫武器 = nil
		玩家数据[id].角色.数据.剧情.渡劫 = 12

		任务处理类:取渡劫任务(id)
		玩家数据[id].角色:刷新任务跟踪()
	elseif 事件 == "门派任务上交乾坤袋" then
		local 任务id = 玩家数据[id].角色:取任务(111)

		if 任务id == 0 or 任务数据[任务id] == nil then
			常规提示(id, "#Y/你没有这样的任务")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "乾坤袋"

		if self.数据[道具id].名称 ~= 名称 then
			常规提示(id, "#Y/对方需要的不是这种物品")

			return
		elseif 任务数据[任务id].乾坤袋 == nil then
			常规提示(id, "#Y/你似乎还没有完成这个任务哟~")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		任务处理类:完成门派任务(id, 7, 双倍)
	elseif 事件 == "偷偷怪上交物品" then
		for i = 1, #数据.格子 do
			local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[i]]
			local 名称 = self.数据[道具id].名称

			if 玩家数据[id].角色.数据.五宝数据[名称] == nil then
				添加最后对话(id, "我要的是金刚石、龙鳞、定魂珠、避水珠、夜光珠，你给我的是个啥玩意？")

				return
			elseif 玩家数据[id].角色.数据.五宝数据[名称] ~= 0 then
				添加最后对话(id, "您可真是贵人多忘事，您不是已经给了我" .. 名称 .. "吗？这么快就忘记了？是到了要喝脑白金的年纪吗？")

				return
			end

			玩家数据[id].角色.数据.五宝数据[名称] = 1

			if 扣除背包位置道具(id, 数据.格子[i], 1) == false then
				return
			end

			local 满足 = true

			for n = 1, #五宝列表 do
				if 玩家数据[id].角色.数据.五宝数据[五宝列表[n]] == 0 then
					满足 = false
				end
			end

			if 满足 then
				玩家数据[id].角色.数据.五宝数据 = {
					夜光珠 = 0,
					金刚石 = 0,
					龙鳞 = 0,
					避水珠 = 0,
					定魂珠 = 0
				}

				self:给予道具(id, "特赦令牌")
				添加最后对话(id, "这块特赦令牌你可收好了，要是给了那些在地狱里无法进入轮回的鬼怪，说不定可以得到什么好东西呢！")
				常规提示(id, "#Y你获得了#R特赦令牌")
			end
		end
	elseif 事件 == "无名野鬼上交物品" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "特赦令牌"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是特赦令牌，你给我的这个能当饭吃吗？")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		self:给予道具(id, "高级藏宝图")
		添加最后对话(id, "您可真是大好人啊，这块特赦令牌终于让我能离开这地狱了。我这里有一张高级藏宝图你拿去吧，就当你做好事的回报。")
		常规提示(id, "#Y你获得了#R高级藏宝图")
	elseif 事件 == "进阶变身卡" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]
		local 名称 = "怪物卡片"

		if self.数据[道具id].名称 ~= 名称 then
			添加最后对话(id, "我需要的是怪物卡片，你给我的这个能当饭吃吗？")

			return
		elseif string.find(self.数据[道具id].造型, "进阶") ~= nil then
			添加最后对话(id, "已经是进阶卡了,你还兑换个毛线啊！")

			return
		elseif self.数据[道具id].等级 <= 4 then
			添加最后对话(id, "变身卡等级低于5级没有进阶造型！")

			return
		elseif 玩家数据[id].角色.数据.银子 < 500000 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W两银子，你似乎手头有点紧哟？", 500000))

			return
		elseif 变身卡数据["进阶" .. self.数据[道具id].造型] == nil then
			添加最后对话(id, "该造型的变身卡无法进阶！")

			return
		end

		奖励名称[id] = {
			变身卡次数 = self.数据[道具id].次数 + 0
		}

		玩家数据[id].道具:给予道具(id, "怪物卡片", "进阶" .. self.数据[道具id].造型)
		常规提示(id, "#Y你获得了#R进阶变身卡")
		玩家数据[id].角色:扣除银子(500000, 0, 0, "进阶变身卡", 1)

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end
	elseif 事件 == "添加装备特效" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 2 or self.数据[道具id].灵饰 then
			添加最后对话(id, "请给予我要添加特效的装备！")

			return
		elseif self.数据[道具id].特效 ~= nil then
			if 通用特效上限 <= #self.数据[道具id].特效 then
				添加最后对话(id, "该装备能获得的通用特效数量已经达到上限！")

				return
			end

			for i = 1, #self.数据[道具id].特效 do
				if self.数据[道具id].特效[i] == "无级别限制" then
					添加最后对话(id, "该装备已经有这个特效了！")

					return
				end
			end
		end

		local 银子消耗 = 1000000
		local 经验消耗 = 10000000

		if 玩家数据[id].角色.数据.银子 < 银子消耗 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W两银子，你似乎手头有点紧哟？", 银子消耗 / 10000))

			return
		elseif 玩家数据[id].角色.数据.当前经验 < 经验消耗 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W经验，你似乎手头有点紧哟？", 经验消耗 / 10000))

			return
		end

		玩家数据[id].角色:扣除银子(银子消耗, 0, 0, "点化装备", 1)
		玩家数据[id].角色:扣除经验(经验消耗, "点化装备", 1)

		if 取随机数(1, 10000) <= 5000 then
			self.数据[道具id].特效[#self.数据[道具id].特效 + 1] = "无级别限制"

			添加最后对话(id, "添加装备特效成功！")
			广播消息({
				频道 = "xt",
				内容 = format("#S(无级别特效)#R/%s#Y在奖励发放员处成功添加#Y无级别#G装备#特效", 玩家数据[id].角色.数据.名称)
			})
		else
			添加最后对话(id, "不好意思，你添加无级别效果失败了！下次继续努力！")
		end
	elseif 事件 == "取消装备专用" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 2 or self.数据[道具id].灵饰 then
			添加最后对话(id, "请给予我要取消专用的装备！")

			return
		end

		if self.数据[道具id].专用 == nil then
			添加最后对话(id, "#4捣乱是吧？不是专用的装备给我干嘛？！")

			return
		end

		local 银子消耗 = 1000000
		local 经验消耗 = 10000000

		if 玩家数据[id].角色.数据.银子 < 银子消耗 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W两银子，你似乎手头有点紧哟？", 银子消耗 / 10000))

			return
		elseif 玩家数据[id].角色.数据.当前经验 < 经验消耗 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W经验，你似乎手头有点紧哟？", 经验消耗 / 10000))

			return
		end

		玩家数据[id].角色:扣除银子(银子消耗, 0, 0, "点化装备", 1)
		玩家数据[id].角色:扣除经验(经验消耗, "点化装备", 1)

		self.数据[道具id].专用 = nil
		self.数据[道具id].不可交易 = nil

		添加最后对话(id, "取消专用成功！")
	elseif 事件 == "更改装备特技" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 2 or self.数据[道具id].分类 > 6 then
			添加最后对话(id, "请给予我要更改特技的装备！")

			return
		end

		local 银子消耗 = 1000000
		local 经验消耗 = 10000000

		if 玩家数据[id].角色.数据.银子 < 银子消耗 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W两银子，你似乎手头有点紧哟？", 银子消耗 / 10000))

			return
		elseif 玩家数据[id].角色.数据.当前经验 < 经验消耗 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W经验，你似乎手头有点紧哟？", 经验消耗 / 10000))

			return
		end

		玩家数据[id].角色:扣除银子(银子消耗, 0, 0, "点化装备", 1)
		玩家数据[id].角色:扣除经验(经验消耗, "点化装备", 1)

		local 当前特技 = nil

		if self.数据[道具id].特技 ~= nil then
			当前特技 = self.数据[道具id].特技
		end

		if 当前特技 ~= nil then
			while self.数据[道具id].特技 == 当前特技 do
				self.数据[道具id].特技 = 通用特技[math.ceil(取随机数(1, #通用特技 * 100) / 100)]
			end
		else
			self.数据[道具id].特技 = 通用特技[math.ceil(取随机数(1, #通用特技 * 100) / 100)]
		end

		添加最后对话(id, "更改特技成功！该装备当前特技为#R" .. self.数据[道具id].特技)
	elseif 事件 == "更改力量魔力" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 2 or self.数据[道具id].灵饰 then
			添加最后对话(id, "请给予我要更改绿字属性的装备！")

			return
		end

		if self.数据[道具id].魔力 == nil and self.数据[道具id].力量 == nil then
			添加最后对话(id, "#4捣乱是吧？没有对应属性的装备给我干嘛？！")

			return
		end

		local 银子消耗 = 1000000
		local 经验消耗 = 10000000

		if 玩家数据[id].角色.数据.银子 < 银子消耗 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W两银子，你似乎手头有点紧哟？", 银子消耗 / 10000))

			return
		elseif 玩家数据[id].角色.数据.当前经验 < 经验消耗 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W经验，你似乎手头有点紧哟？", 经验消耗 / 10000))

			return
		end

		玩家数据[id].角色:扣除银子(银子消耗, 0, 0, "点化装备", 1)
		玩家数据[id].角色:扣除经验(经验消耗, "点化装备", 1)

		local 魔力值, 力量值 = nil

		if self.数据[道具id].魔力 ~= nil and self.数据[道具id].力量 ~= nil then
			魔力值 = self.数据[道具id].魔力
			力量值 = self.数据[道具id].力量

			if 力量值 < 魔力值 then
				self.数据[道具id].魔力 = nil
				self.数据[道具id].力量 = nil
				self.数据[道具id].力量 = 魔力值
				self.数据[道具id].体质 = (self.数据[道具id].体质 or 0) + 力量值
			else
				self.数据[道具id].魔力 = nil
				self.数据[道具id].力量 = nil
				self.数据[道具id].魔力 = 力量值
				self.数据[道具id].体质 = (self.数据[道具id].体质 or 0) + 魔力值
			end

			添加最后对话(id, "#G更改成功，由于该装备#R魔力、力量#G都有，因此将属性值较大的转换了，另一个换成了体质属性。")
		elseif self.数据[道具id].魔力 ~= nil then
			魔力值 = self.数据[道具id].魔力
			self.数据[道具id].魔力 = nil
			self.数据[道具id].力量 = 魔力值

			添加最后对话(id, "#G更改成功!")
		else
			力量值 = self.数据[道具id].力量
			self.数据[道具id].力量 = nil
			self.数据[道具id].魔力 = 力量值

			添加最后对话(id, "#G更改成功!")
		end
	elseif 事件 == "追加附加转换" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 2 or self.数据[道具id].灵饰 then
			添加最后对话(id, "请给予我要转换的装备！")

			return
		end

		if self.数据[道具id].套装效果 == nil then
			添加最后对话(id, "#4捣乱是吧？没有套装效果的装备给我干嘛？！")

			return
		end

		if self.数据[道具id].分类 ~= 7 and self.数据[道具id].分类 ~= 8 and self.数据[道具id].分类 ~= 9 then
			添加最后对话(id, "很抱歉，必须是宠物装备才能转换！")

			return
		end

		local 银子消耗 = 10000000
		local 经验消耗 = 100000000

		if 玩家数据[id].角色.数据.银子 < 银子消耗 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W两银子，你似乎手头有点紧哟？", 银子消耗 / 10000))

			return
		elseif 玩家数据[id].角色.数据.当前经验 < 经验消耗 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W经验，你似乎手头有点紧哟？", 经验消耗 / 10000))

			return
		end

		玩家数据[id].角色:扣除银子(银子消耗, 0, 0, "点化装备", 1)
		玩家数据[id].角色:扣除经验(经验消耗, "点化装备", 1)

		if self.数据[道具id].套装效果[1] == "附加状态" then
			self.数据[道具id].套装效果[1] = "追加法术"
		else
			self.数据[道具id].套装效果[1] = "附加状态"
		end

		添加最后对话(id, "切换成功，该装备套装效果已更改为#R" .. self.数据[道具id].套装效果[1] .. "#W！")
	elseif 事件 == "更改装备造型" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 2 then
			添加最后对话(id, "请给予我要添加的装备！")

			return
		end

		if self.数据[道具id].分类 ~= 1 and self.数据[道具id].分类 ~= 3 and self.数据[道具id].分类 ~= 4 and self.数据[道具id].分类 ~= 5 then
			添加最后对话(id, "该装备无法更换造型！")

			return
		end

		local 银子消耗 = 1000000
		local 经验消耗 = 10000000

		if 玩家数据[id].角色.数据.银子 < 银子消耗 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W两银子，你似乎手头有点紧哟？", 银子消耗 / 10000))

			return
		elseif 玩家数据[id].角色.数据.当前经验 < 经验消耗 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W经验，你似乎手头有点紧哟？", 经验消耗 / 10000))

			return
		end

		local 物品列表 = 绑定等级物品()
		local 等级序列 = math.floor(self.数据[道具id].级别限制 / 10) + 1

		if self.数据[道具id].分类 == 1 then
			if 物品列表[19][等级序列][1] == self.数据[道具id].名称 then
				self.数据[道具id].名称 = 物品列表[19][等级序列][2]
				self.数据[道具id].性别限制 = "女"
			else
				self.数据[道具id].名称 = 物品列表[19][等级序列][1]
				self.数据[道具id].性别限制 = "男"
			end
		elseif self.数据[道具id].分类 == 4 then
			if 物品列表[21][等级序列][1] == self.数据[道具id].名称 then
				self.数据[道具id].名称 = 物品列表[21][等级序列][2]
				self.数据[道具id].性别限制 = "男"
			else
				self.数据[道具id].名称 = 物品列表[21][等级序列][1]
				self.数据[道具id].性别限制 = "女"
			end
		elseif self.数据[道具id].分类 == 5 then
			if 等级序列 >= 4 and 等级序列 <= 9 then
				if 物品列表[22][等级序列][1] == self.数据[道具id].名称 then
					self.数据[道具id].名称 = 物品列表[22][等级序列][2]
				else
					self.数据[道具id].名称 = 物品列表[22][等级序列][1]
				end
			else
				添加最后对话(id, "该装备无法更换造型！")

				return
			end
		elseif self.数据[道具id].分类 == 3 then
			local aa, bb = nil

			while true do
				bb = math.ceil(取随机数(1, 1800) / 100)
				aa = 物品列表[bb][等级序列]

				if aa ~= self.数据[道具id].名称 then
					break
				end
			end

			self.数据[道具id].名称 = aa
			self.数据[道具id].角色限制 = 取物品数据(self.数据[道具id].名称)[7]
			self.数据[道具id].子类 = bb
		end

		玩家数据[id].角色:扣除银子(银子消耗, 0, 0, "点化装备", 1)
		玩家数据[id].角色:扣除经验(经验消耗, "点化装备", 1)
		添加最后对话(id, "更改装备造型成功！")
	elseif 事件 == "添加装备特效1" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].灵饰 == nil then
			添加最后对话(id, "请给予我要添加特效的灵饰！")

			return
		end

		local 替换位置 = 0

		if self.数据[道具id].特效 ~= nil then
			for i = 1, #self.数据[道具id].特效 do
				if self.数据[道具id].特效[i] == "无级别限制" then
					添加最后对话(id, "这件灵饰已经有这个特效了！")

					return
				elseif self.数据[道具id].特效[i] == "简易" or self.数据[道具id].特效[i] == "超级简易" then
					替换位置 = i + 0
				end
			end
		end

		if 玩家数据[id].角色.数据.银子 < 100000 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W两银子，你似乎手头有点紧哟？", 100000))

			return
		elseif 玩家数据[id].角色.数据.当前经验 < 1000000 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W两经验，你似乎手头有点紧哟？", 1000000))

			return
		end

		玩家数据[id].角色:扣除银子(100000, 0, 0, "点化装备", 1)
		玩家数据[id].角色:扣除经验(1000000, "点化装备", 1)

		if 取随机数(1, 10000) <= 5000 then
			if 替换位置 == 0 then
				self.数据[道具id].特效 = self.数据[道具id].特效 or {}
				self.数据[道具id].特效[#self.数据[道具id].特效 + 1] = "无级别限制"
			else
				self.数据[道具id].特效[替换位置] = "无级别限制"
			end

			添加最后对话(id, "添加灵饰特效成功！")
			广播消息({
				频道 = "xt",
				内容 = format("#S(无级别特效)#R/%s#Y在奖励发放员处成功添加#Y无级别#G灵饰#特效", 玩家数据[id].角色.数据.名称)
			})
		else
			添加最后对话(id, "不好意思，你添加无级别效果失败了！下次继续努力！")
		end
	elseif 事件 == "点化装备" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 2 or self.数据[道具id].灵饰 or self.数据[道具id].分类 == 9 then
			添加最后对话(id, "我这里目前只能点化人物装备，其它的我可没那么大的能耐。")

			return
		end

		local 银子 = self.数据[道具id].级别限制 * 5000

		if 玩家数据[id].角色.数据.银子 < 银子 then
			添加最后对话(id, format("本次点化需要消耗#Y%s#W两银子，你似乎手头有点紧哟？", 银子))

			return
		end

		玩家数据[id].角色:扣除银子(银子, 0, 0, "点化装备", 1)

		local 套装类型 = {
			"附加状态",
			"追加法术"
		}
		套装类型 = 套装类型[取随机数(1, #套装类型)]
		local 套装效果 = {
			附加状态 = {
				"金刚护法",
				"金刚护体",
				"生命之泉",
				"炼气化神",
				"普渡众生",
				"定心术",
				"碎星诀",
				"变身",
				"凝神术",
				"逆鳞",
				"不动如山",
				"法术防御",
				"明光宝烛",
				"天神护体",
				"移魂化骨",
				"蜜润",
				"杀气诀",
				"韦陀护法",
				"一苇渡江",
				"天神护法",
				"乘风破浪",
				"魔息术",
				"盘丝阵",
				"炎护"
			},
			追加法术 = {
				"横扫千军",
				"善恶有报",
				"惊心一剑",
				"壁垒击破",
				"满天花雨",
				"浪涌",
				"唧唧歪歪",
				"五雷咒",
				"龙卷雨击",
				"剑荡四方",
				"裂石",
				"烟雨剑法",
				"天雷斩",
				"力劈华山",
				"夜舞倾城",
				"上古灵符",
				"叱咤风云",
				"天降灵葫",
				"月光",
				"八凶法阵",
				"死亡召唤",
				"天罗地网",
				"夺命咒",
				"落叶萧萧",
				"落雷符",
				"雨落寒沙",
				"苍茫树",
				"飞砂走石",
				"阎罗令",
				"水攻",
				"烈火",
				"落岩",
				"雷击",
				"泰山压顶",
				"水漫金山",
				"地狱烈火",
				"奔雷咒"
			}
		}
		self.数据[道具id].套装效果 = {
			套装类型,
			套装效果[套装类型][取随机数(1, #套装效果[套装类型])]
		}

		玩家数据[id].角色:取消任务(玩家数据[id].角色:取任务(14))
		玩家数据[id].角色:刷新任务跟踪()
		添加最后对话(id, format("点化装备成功,您本次点化后的套装效果为#Y%s：%s", self.数据[道具id].套装效果[1], self.数据[道具id].套装效果[2]), {
			"继续点化",
			"告辞"
		})
	elseif 事件 == "添加160级装备特技(10亿一次)" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 2 or self.数据[道具id].灵饰 or self.数据[道具id].分类 == 9 then
			添加最后对话(id, "我这里目前只能添加人物装备，其它的我可没那么大的能耐。")

			return
		end

		if self.数据[道具id].级别限制 < 160 then
			添加最后对话(id, "非160级装备不能添加")

			return
		end

		local 银子 = 1000000000

		if 玩家数据[id].角色.数据.银子 < 银子 then
			添加最后对话(id, format("本次添加需要消耗#Y%s#W两银子，你似乎手头有点紧哟？", 银子))

			return
		end

		玩家数据[id].角色:扣除银子(银子, 0, 0, "点化装备", 1)

		self.数据[道具id].特技 = 通用特技[取随机数(1, #通用特技)]

		添加最后对话(id, format("添加特技成功,您本次添加特技效果为#Y%s", self.数据[道具id].特技))
	elseif 事件 == "添加160级装备特效(10亿一次)" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 2 or self.数据[道具id].灵饰 or self.数据[道具id].分类 == 9 then
			添加最后对话(id, "我这里目前只能添加人物装备，其它的我可没那么大的能耐。")

			return
		end

		if self.数据[道具id].级别限制 < 160 then
			添加最后对话(id, "非160级装备不能添加")

			return
		end

		local 银子 = 1000000000

		if 玩家数据[id].角色.数据.银子 < 银子 then
			添加最后对话(id, format("本次添加需要消耗#Y%s#W两银子，你似乎手头有点紧哟？", 银子))

			return
		end

		玩家数据[id].角色:扣除银子(银子, 0, 0, "点化装备", 1)

		local 通用特效 = {
			"愤怒",
			"暴怒",
			"神佑",
			"珍宝",
			"必中",
			"神农",
			"简易",
			"超级简易",
			"绝杀",
			"专注",
			"精致",
			"再生"
		}
		self.数据[道具id].特效 = {
			通用特效[取随机数(1, #通用特效)]
		}

		添加最后对话(id, format("添加特技成功,您本次添加特技效果为#Y%s", self.数据[道具id].特效))
	elseif 事件 == "合成旗4" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 11 or self.数据[道具id].分类 ~= 2 then
			常规提示(id, "#Y我只可以为合成旗补充次数哟。")

			return
		elseif self.数据[道具id].次数 >= 140 then
			常规提示(id, "#Y你的这个合成旗次数已经满了")

			return
		end

		local 编号 = 玩家数据[id].法宝id

		if 玩家数据[id].角色.数据.法宝[编号] == nil or self.数据[玩家数据[id].角色.数据.法宝[编号]] == nil or self.数据[玩家数据[id].角色.数据.法宝[编号]].名称 ~= "五色旗盒" then
			常规提示(id, "#Y你没有这样的法宝")

			return
		end

		local 灵气 = 140 - self.数据[道具id].次数
		灵气 = math.floor(灵气 / 5)

		if 灵气 < 1 then
			灵气 = 1
		end

		if self.数据[玩家数据[id].角色.数据.法宝[编号]].魔法 < 灵气 then
			常规提示(id, "#Y本次补充需要消耗#R" .. 灵气 .. "#Y点法宝灵气，你的法宝没有那么多的灵气")

			return
		end

		self.数据[玩家数据[id].角色.数据.法宝[编号]].魔法 = self.数据[玩家数据[id].角色.数据.法宝[编号]].魔法 - 灵气
		self.数据[道具id].次数 = 140

		发送数据(连接id, 38, {
			内容 = "你的法宝#R/五色旗盒#W/灵气减少了" .. 灵气 .. "点"
		})
		常规提示(id, "#Y补充成功！你的这个合成旗可使用次数已经恢复到140次了")
		刷新道具行囊单格(id, "法宝", 编号, 玩家数据[id].角色.数据.法宝[编号])
		刷新道具行囊单格(id, "道具", 数据.格子[1], 道具id)
	elseif 事件 == "合成旗" then
		local 道具id = {}

		for n = 1, #数据.格子 do
			if 数据.格子[n] ~= nil then
				道具id[n] = 数据.格子[n]
				local 临时id = 玩家数据[id].角色.数据.道具[数据.格子[n]]

				if self.数据[临时id].总类 ~= 11 and self.数据[临时id].分类 ~= 1 then
					常规提示(id, "#Y只有导标旗才可以合成哟")

					return
				end
			end
		end

		if 玩家数据[id].合成旗序列 == nil then
			玩家数据[id].合成旗序列 = {}

			for n = 1, #道具id do
				local 临时id = 玩家数据[id].角色.数据.道具[道具id[n]]

				for i = 1, #道具id do
					local 临时id1 = 玩家数据[id].角色.数据.道具[道具id[i]]

					if i ~= n and 临时id1 == 临时id then
						常规提示(id, "#Y合成的导标旗中存在重复导标旗")

						return
					elseif i ~= n and self.数据[临时id].地图 ~= self.数据[临时id1].地图 then
						常规提示(id, "#Y合成的导标旗定标场景必须为同一个")

						return
					end
				end
			end
		else
			for n = 1, #道具id do
				local 临时id = 玩家数据[id].角色.数据.道具[道具id[n]]

				if 玩家数据[id].合成旗序列.地图 ~= nil and 玩家数据[id].合成旗序列.地图 ~= self.数据[临时id].地图 then
					常规提示(id, "#Y只有#R" .. 取地图名称(玩家数据[id].合成旗序列.地图) .. "#Y的导标旗才可合成")

					return
				end

				for i = 1, #道具id do
					local 临时id1 = 玩家数据[id].角色.数据.道具[道具id[i]]

					if i ~= n and 临时id1 == 临时id then
						常规提示(id, "#Y合成的导标旗中存在重复导标旗")

						return
					end
				end

				for i = 1, #玩家数据[id].合成旗序列 do
					local 临时id1 = 玩家数据[id].角色.数据.道具[玩家数据[id].合成旗序列[i]]

					if 临时id1 == 临时id then
						常规提示(id, "#Y合成的导标旗中存在重复导标旗")

						return
					end
				end
			end
		end

		local 编号 = 玩家数据[id].法宝id

		if 玩家数据[id].角色.数据.法宝[编号] == nil or self.数据[玩家数据[id].角色.数据.法宝[编号]] == nil or self.数据[玩家数据[id].角色.数据.法宝[编号]].名称 ~= "五色旗盒" then
			常规提示(id, "#Y你没有这样的法宝")

			return
		end

		local 上限 = 7

		if self.数据[玩家数据[id].角色.数据.法宝[编号]].气血 <= 0 then
			上限 = 3
		elseif self.数据[玩家数据[id].角色.数据.法宝[编号]].气血 <= 2 then
			上限 = 4
		elseif self.数据[玩家数据[id].角色.数据.法宝[编号]].气血 <= 5 then
			上限 = 5
		elseif self.数据[玩家数据[id].角色.数据.法宝[编号]].气血 <= 8 then
			上限 = 6
		elseif self.数据[玩家数据[id].角色.数据.法宝[编号]].气血 <= 9 then
			上限 = 7
		end

		for n = 1, #道具id do
			if 上限 > #玩家数据[id].合成旗序列 then
				if 玩家数据[id].合成旗序列.地图 == nil then
					玩家数据[id].合成旗序列.地图 = self.数据[玩家数据[id].角色.数据.道具[道具id[n]]].地图
				end

				玩家数据[id].合成旗序列[#玩家数据[id].合成旗序列 + 1] = 道具id[n]
			end
		end

		if #玩家数据[id].合成旗序列 == 上限 then
			local aa = "请选择超级合成旗的颜色："
			local xx = {
				"绿色合成旗",
				"蓝色合成旗",
				"红色合成旗",
				"白色合成旗",
				"黄色合成旗"
			}

			发送数据(连接id, 1501, {
				名称 = "五色旗盒",
				对话 = aa,
				选项 = xx
			})

			玩家数据[id].最后操作 = "合成旗3"
		else
			玩家数据[id].给予数据 = {
				id = 0,
				类型 = 1,
				事件 = "合成旗"
			}

			发送数据(连接id, 3507, {
				名称 = "五色旗盒",
				类型 = "法宝",
				等级 = "无",
				道具 = 玩家数据[id].道具:索要道具1(id)
			})

			玩家数据[id].最后操作 = "合成旗2"

			常规提示(id, format("#Y你已提交%s个导标旗，还需要提交%s个导标旗", #玩家数据[id].合成旗序列, 上限 - #玩家数据[id].合成旗序列))
		end
	elseif 事件 == "装备出售" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id] == nil then
			return
		end

		if self.数据[道具id].总类 ~= 2 or self.数据[道具id].灵饰 or self.数据[道具id].分类 == 9 then
			添加最后对话(id, "我这里只收购人物装备哟，其它的破铜烂铁我可是不收滴哟。")

			return
		end

		玩家数据[id].出售装备 = 数据.格子[1]
		玩家数据[id].最后操作 = "出售装备"

		添加最后对话(id, format("你的这件#Y%s#W我将以#R%s#W两银子进行收购，请确认是否出售该装备？", self.数据[道具id].名称, self:取装备价格(道具id)), {
			"确认出售",
			"我不卖了"
		})
	elseif 事件 == "装备鉴定" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id] == nil then
			return
		end

		if self.数据[道具id].总类 ~= 2 or self.数据[道具id].灵饰 or self.数据[道具id].分类 == 9 then
			添加最后对话(id, "我这里只收购人物装备哟，其它的破铜烂铁我可是不收滴哟。")

			return
		end

		玩家数据[id].鉴定装备 = 数据.格子[1]
		玩家数据[id].最后操作 = "鉴定装备"

		添加最后对话(id, format("你的这件#Y%s#W我将以#R%s#W两银子进行鉴定，请确认是否鉴定该装备？", self.数据[道具id].名称, self:取装备价格(道具id)), {
			"确认鉴定",
			"我不鉴定了"
		})
	elseif 事件 == "储灵袋补充灵气" or 事件 == "助战储灵袋补充灵气" then
		local 道具id = 数据.格子[1]

		if self.数据[道具id].总类 ~= 1000 then
			添加最后对话(id, "只有法宝才可以补充灵气哟，你这个是什么玩意？")

			return
		elseif 玩家数据[id].储灵袋位置 == nil then
			添加最后对话(id, "使用失败、数据错误")

			return
		end

		if 扣除背包位置道具(id, 玩家数据[id].储灵袋位置, 1) == false then
			return
		end

		玩家数据[id].储灵袋位置 = nil
		self.数据[道具id].魔法 = self.数据[道具id].魔法 + 500

		道具刷新(id)

		if 事件 == "助战储灵袋补充灵气" then
			添加最后对话(id, "补充助战法宝灵气成功！")
			发送数据(玩家数据[id].连接id, 104.3, 玩家数据[id].道具:索要道具2(id))

			local bh = 玩家数据[id].储灵袋助战编号
			玩家数据[id].储灵袋助战编号 = nil
		else
			添加最后对话(id, "补充法宝灵气成功！")
		end
	elseif 事件 == "法宝补充灵气" then
		local 道具id = 玩家数据[id].角色.数据.法宝[数据.格子[1]]

		if self.数据[道具id].总类 ~= 1000 then
			添加最后对话(id, "只有法宝才可以补充灵气哟，你这个是什么玩意？")

			return
		end

		local 灵气上限 = 取灵气上限(self.数据[道具id].分类)

		if 灵气上限 <= (self.数据[道具id].魔法 or 0) then
			添加最后对话(id, "该法宝灵气非常充盈、无需补充灵气。")

			return
		end

		local 价格 = (灵气上限 - (self.数据[道具id].魔法 or 0)) * 10000

		if 玩家数据[id].角色.数据.银子 < 价格 then
			添加最后对话(id, "本次补充法宝灵气需要消耗" .. 数字转简(价格) .. "两银子，你身上没有那么多的现金哟。")

			return
		end

		玩家数据[id].角色:扣除银子(价格, 0, 0, "补充法宝扣除，法宝名称为" .. self.数据[道具id].名称, 1)

		self.数据[道具id].魔法 = 取灵气上限(self.数据[道具id].分类)

		添加最后对话(id, "补充法宝灵气成功！")
	elseif 事件 == "宠修物品" or 事件 == "人修物品" then
		local 任务id = 玩家数据[id].角色:取任务(13)

		if 任务id == 0 then
			添加最后对话(id, "你没有这个任务！")

			return
		end

		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].名称 ~= 任务数据[任务id].物品 then
			添加最后对话(id, "我拿这个玩意用来干啥？")

			return
		end

		if 扣除背包位置道具(id, 数据.格子[1], 1) == false then
			return
		end

		local 人修 = nil

		if 事件 == "人修物品" then
			人修 = 1
		end

		任务处理类:完成宠修任务(id, 任务id, 人修)
	elseif 事件 == "枪矛" or 事件 == "斧钺" or 事件 == "剑" or 事件 == "双短剑" or 事件 == "飘带" or 事件 == "爪刺" or 事件 == "扇" or 事件 == "魔棒" or 事件 == "锤" or 事件 == "鞭" or 事件 == "环圈" or 事件 == "刀" or 事件 == "法杖" or 事件 == "弓弩" or 事件 == "宝珠" or 事件 == "巨剑" or 事件 == "伞" or 事件 == "灯笼" or 事件 == "头盔" or 事件 == "发钗" or 事件 == "女衣" or 事件 == "男衣" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 2 then
			添加最后对话(id, "只有装备才能进行转换")

			return
		end

		local 子类 = self:取武器类型(事件)
		local 等级 = self.数据[道具id].级别限制

		玩家数据[id].角色:转换武器操作(id, self.数据[道具id], 子类, 数据.格子[1], 道具id)
	elseif 事件 == "道观建设" then
		local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[1]]

		if self.数据[道具id].总类 ~= 21 then
			添加最后对话(id, "只能上交木材")

			return
		end

		local 任务id = 玩家数据[id].角色:取任务(130)
		local 副本id = 任务数据[任务id].副本id
		local 需要木材 = 副本减负.车迟斗法[1] - 副本数据.车迟斗法.进行[副本id].车迟木材
		local 增加进度 = math.min(self.数据[道具id].数量 * 1, 需要木材)

		if 扣除背包位置道具(id, 数据.格子[1], 增加进度) == false then
			return
		end

		副本数据.车迟斗法.进行[副本id].车迟木材 = 副本数据.车迟斗法.进行[副本id].车迟木材 + 增加进度

		for n = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
			if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
				if 副本减负.车迟斗法[1] <= 副本数据.车迟斗法.进行[副本id].车迟木材 then
					地图处理类:当前消息广播1(6021, "#Y当前道观建设已满，速去找有个和尚")

					副本数据.车迟斗法.进行[副本id].进程 = 2

					玩家数据[队伍数据[玩家数据[id].队伍].成员数据[n]].角色:刷新任务跟踪()
				end

				玩家数据[队伍数据[玩家数据[id].队伍].成员数据[n]].角色:刷新任务跟踪()
			end
		end

		常规提示(id, "#Y你上交了#R" .. 增加进度 .. "#Y个木材，为道观增加了#R" .. 增加进度 .. "#Y建设度。")
		刷新道具行囊单格(id, "道具", 数据.格子[1], 道具id)
		任务处理类:设置车迟斗法副本(副本id)
	end
end

function 道具处理类:回收物品(连接id, id)
	if 玩家数据[id].回收物品 == nil then
		添加最后对话(id, "你没有这样的物品。")

		return
	elseif 玩家数据[id].角色.数据.道具[玩家数据[id].回收物品] == nil then
		添加最后对话(id, "你没有这样的物品。")

		return
	end

	local 道具id = 玩家数据[id].角色.数据.道具[玩家数据[id].回收物品]

	if self.数据[道具id] == nil then
		添加最后对话(id, "你没有这样的物品。")

		return
	end

	local 价格 = self:取回收价格(道具id)

	if 价格.价格 == 0 then
		添加最后对话(id, "此类物品不在回收列表上。")

		return
	end

	local 名称 = self.数据[道具id].名称
	local 数量 = self.数据[道具id].数量

	if 数量 == nil then
		数量 = 1
	end

	local 识别码 = self.数据[道具id].识别码

	if 识别码 == nil then
		识别码 = "无法识别"
	end

	if self.数据[道具id].数量 ~= nil and self.数据[道具id].数量 > 0 then
		价格.价格 = 价格.价格 * self.数据[道具id].数量
	end

	self.数据[道具id] = nil
	玩家数据[id].角色.数据.道具[玩家数据[id].回收物品] = nil
	玩家数据[id].回收物品 = nil

	if 价格.类型 == 1 then
		玩家数据[id].角色:添加银子(价格.价格, format("回收物品:%s,%s,%s", 名称, 数量, 识别码), 1)
		添加最后对话(id, format("回收物品成功，你获得了%s两银子", 价格.价格))
	end

	刷新道具行囊单格(id, "道具", 玩家数据[id].回收物品, 道具id)
end

function 道具处理类:取回收价格(id)
	local 名称 = self.数据[id].名称
	local 价格 = 0
	local 类型 = 1

	if 名称 == "魔兽要诀" then
		价格 = 1000
	elseif 名称 == "高级魔兽要诀" then
		价格 = 5000
	elseif 名称 == "摇钱树树苗" then
		价格 = 10
	elseif 名称 == "龙鳞" then
		价格 = 5000
	elseif 名称 == "避水珠" then
		价格 = 5000
	elseif 名称 == "点化石" then
		价格 = 5000
	elseif 名称 == "符石" then
		价格 = 10
	elseif 名称 == "钨金" then
		价格 = 10
	elseif 名称 == "夜光珠" then
		价格 = 5000
	elseif 名称 == "金刚石" then
		价格 = 5000
	elseif 名称 == "定魂珠" then
		价格 = 5000
	elseif 名称 == "金柳露" or 名称 == "金银锦盒" then
		价格 = 1000
	elseif 名称 == "超级金柳露" then
		价格 = 5000
	elseif 名称 == "鬼谷子" then
		价格 = 10000
	elseif 名称 == "召唤兽内丹" then
		价格 = 10000
	elseif 名称 == "高级召唤兽内丹" then
		价格 = 20000
	elseif 名称 == "制造指南书" or 名称 == "灵饰指南书" then
		价格 = 5000
	elseif 名称 == "百炼精铁" or 名称 == "元灵晶石" then
		价格 = 5000
	elseif 名称 == "修炼果" then
		价格 = 5000
	elseif 名称 == "炼妖石" then
		价格 = 1000
	elseif 名称 == "上古锻造图策" then
		价格 = 1000
	elseif 名称 == "天眼珠" then
		价格 = 1000
	elseif 名称 == "九转金丹" then
		价格 = 1000
	elseif 名称 == "彩果" then
		价格 = 1000
	elseif 名称 == "藏宝图" then
		价格 = 1000
	elseif 名称 == "高级藏宝图" then
		价格 = 10000
	elseif 名称 == "天眼通符" then
		if self.数据[id].分类 == 500 then
			价格 = 1
		else
			价格 = 1
		end
	elseif 名称 == "特赦令牌" then
		价格 = 10000
	elseif self.数据[id].总类 == 2 then
		价格 = 1
	elseif 名称 == "飞刀" or 名称 == "顺逆神针" or 名称 == "飞蝗石" or 名称 == "铁蒺藜" or 名称 == "无影神针" or 名称 == "孔雀翎" or 名称 == "含沙射影" or 名称 == "回龙摄魂标" or 名称 == "寸阴若梦" or 名称 == "魔睛子" then
		价格 = 1
	elseif 名称 == "翡翠豆腐" or 名称 == "佛跳墙" or 名称 == "蛇蝎美人" or 名称 == "风水混元丹" or 名称 == "定神香" or 名称 == "十香返生丸" or 名称 == "丁香水" or 名称 == "月星子" or 名称 == "仙狐涎" or 名称 == "地狱灵芝" or 名称 == "麝香" or 名称 == "血珊瑚" or 名称 == "餐风饮露" or 名称 == "白露为霜" or 名称 == "天龙水" or 名称 == "孔雀红" or 名称 == "紫丹罗" or 名称 == "佛手" or 名称 == "旋复花" or 名称 == "龙须草" or 名称 == "百色花" or 名称 == "香叶" or 名称 == "白玉骨头" or 名称 == "鬼切草" or 名称 == "灵脂" or 名称 == "曼陀罗花" or 名称 == "金创药" or 名称 == "小还丹" or 名称 == "千年保心丹" or 名称 == "金香玉" or 名称 == "五龙丹" or 名称 == "天不老" or 名称 == "紫石英" or 名称 == "血色茶花" or 名称 == "熊胆" or 名称 == "鹿茸" or 名称 == "六道轮回" or 名称 == "凤凰尾" or 名称 == "硫磺草" or 名称 == "龙之心屑" or 名称 == "火凤之睛" or 名称 == "四叶花" or 名称 == "天青地白" or 名称 == "七叶莲" then
		价格 = 1
	elseif self.数据[id].总类 == 1 and self.数据[id].分类 ~= 1 and self.数据[id].子类 ~= 2 then
		价格 = 1
	elseif 宝石列表1[名称] ~= nil then
		价格 = 5000
	elseif 名称 == "青龙石" or 名称 == "玄武石" or 名称 == "白虎石" or 名称 == "朱雀石" then
		价格 = 1000
	elseif 名称 == "初级清灵仙露" or 名称 == "中级清灵仙露" or 名称 == "高级清灵仙露" then
		价格 = 1000
	elseif 名称 == "未激活的星石" or 名称 == "未激活的符石" or 名称 == "符石卷轴" then
		价格 = 1000
	end

	return {
		价格 = 价格,
		类型 = 类型
	}
end

function 道具处理类:出售装备(连接id, id)
	if 玩家数据[id].出售装备 == nil or 玩家数据[id].角色.数据.道具[玩家数据[id].出售装备] == nil then
		添加最后对话(id, "该装备不存在！")

		return
	end

	local 道具id = 玩家数据[id].角色.数据.道具[玩家数据[id].出售装备]

	if self.数据[道具id].总类 ~= 2 or self.数据[道具id].灵饰 or self.数据[道具id].分类 == 9 then
		添加最后对话(id, "该物品无法被我收购")

		return
	end

	local 银子 = self:取装备价格(道具id)

	玩家数据[id].角色:添加银子(银子, format("出售装备:%s,%s", self.数据[道具id].名称, self.数据[道具id].识别码), 1)

	self.数据[道具id] = nil

	刷新道具行囊单格(id, "道具", 玩家数据[id].出售装备, 道具id)

	玩家数据[id].角色.数据.道具[玩家数据[id].出售装备] = nil
	玩家数据[id].出售装备 = nil

	添加最后对话(id, "出售装备成功，你获得了" .. 银子 .. "两银子")
end

function 道具处理类:取装备价格(道具id)
	local 等级 = self.数据[道具id].级别限制
	local 价格 = 150

	if 等级 == 10 then
		价格 = 1
	elseif 等级 < 10 then
		价格 = 1
	elseif 等级 <= 20 then
		价格 = 1
	elseif 等级 <= 30 then
		价格 = 1
	elseif 等级 <= 40 then
		价格 = 1
	else
		价格 = 100
	end

	if self.数据[道具id].专用 ~= nil then
		价格 = 1
		等级 = 1
	end

	return 价格 * 等级
end

function 道具处理类:生成合成旗(连接id, id, 名称)
	if 玩家数据[id].合成旗序列 == nil or #玩家数据[id].合成旗序列 <= 0 then
		常规提示(id, "#Y未找到已提交的导标旗，请重新使用法宝进行合成")

		玩家数据[id].合成旗序列 = nil

		return
	end

	local 编号 = 玩家数据[id].法宝id

	if 玩家数据[id].角色.数据.法宝[编号] == nil or self.数据[玩家数据[id].角色.数据.法宝[编号]] == nil or self.数据[玩家数据[id].角色.数据.法宝[编号]].名称 ~= "五色旗盒" then
		常规提示(id, "#Y你没有这样的法宝")

		return
	elseif self.数据[玩家数据[id].角色.数据.法宝[编号]].魔法 <= 0 then
		常规提示(id, "#Y你的法宝灵气不足")

		return
	end

	self.数据[玩家数据[id].角色.数据.法宝[编号]].魔法 = self.数据[玩家数据[id].角色.数据.法宝[编号]].魔法 - 1
	local 次数 = 0

	for n = 1, #玩家数据[id].合成旗序列 do
		local 临时id = 玩家数据[id].角色.数据.道具[玩家数据[id].合成旗序列[n]]

		if 临时id == nil or self.数据[临时id] == nil or self.数据[临时id].总类 ~= 11 or self.数据[临时id].分类 ~= 1 or self.数据[临时id].地图 ~= 玩家数据[id].合成旗序列.地图 or self.数据[临时id].次数 == nil then
			常规提示(id, "#Y你的旗子没有定点，合成失败")

			玩家数据[id].合成旗序列 = nil

			return
		end

		次数 = 次数 + self.数据[临时id].次数
	end

	local 临时id = 玩家数据[id].角色.数据.道具[玩家数据[id].合成旗序列[1]]
	self.数据[临时id].名称 = 名称
	self.数据[临时id].分类 = 2
	self.数据[临时id].次数 = 次数
	self.数据[临时id].xy = {}

	for n = 1, #玩家数据[id].合成旗序列 do
		local 临时id1 = 玩家数据[id].角色.数据.道具[玩家数据[id].合成旗序列[n]]
		self.数据[临时id].xy[n] = {
			x = self.数据[临时id1].x,
			y = self.数据[临时id1].y
		}

		if n ~= 1 then
			玩家数据[id].角色.数据.道具[玩家数据[id].合成旗序列[n]] = nil
			self.数据[临时id1] = nil
		end
	end

	玩家数据[id].合成旗序列 = nil
	玩家数据[id].法宝id = nil
	玩家数据[id].最后操作 = nil

	发送数据(连接id, 38, {
		内容 = "你的法宝#R/五色旗盒#W/灵气减少了1点"
	})
	常规提示(id, "#Y您获得了#R" .. 名称)
	道具刷新(id)
end

function 道具处理类:取装备1价格(道具id)
	local 等级 = self.数据[道具id].级别限制
	local 价格 = 150

	if 等级 == 10 then
		价格 = 1
	elseif 等级 < 10 then
		价格 = 100000
	elseif 等级 <= 20 then
		价格 = 1
	elseif 等级 <= 30 then
		价格 = 1
	elseif 等级 <= 40 then
		价格 = 1
	else
		价格 = 100
	end

	if self.数据[道具id].专用 ~= nil then
		价格 = 1
		等级 = 1
	end

	return 价格
end

function 道具处理类:给予处理(连接id, id, 数据)
	if 玩家数据[id].给予数据 == nil then
		return
	elseif 玩家数据[id].给予数据.类型 == 1 then
		self:系统给予处理(连接id, id, 数据)

		return
	end

	local 对方id = 玩家数据[id].给予数据.id

	if 玩家数据[对方id] == nil then
		常规提示(id, "#Y/对方并不在线")

		return
	end

	if 地图处理类:比较距离(id, 对方id, 5000) == false then
		常规提示(id, "#Y/你们的距离太远了")

		return
	end

	if 玩家数据[对方id].摊位数据 ~= nil then
		常规提示(id, "#Y/对方正在摆摊无法给予物品")

		return
	end

	if 玩家数据[对方id].角色.数据.接受给予 == false then
		常规提示(id, "#Y/对方不接受任何方式给予物品")

		return
	end

	local 银子 = 0
	local 银子来源 = 数据.银子
	local 名称 = 玩家数据[id].角色.数据.名称
	local 名称1 = 玩家数据[对方id].角色.数据.名称
	银子 = (银子来源 == "" or 银子来源 == nil) and 0 or 数据.银子 + 0

	if 银子 < 0 then
		return
	end

	if 玩家数据[id].角色.数据.银子 < 银子 then
		常规提示(id, "#Y/你没有那么多的银子")

		return
	end

	if 银子 > 0 then
		local 之前银子 = 玩家数据[id].角色.数据.银子
		玩家数据[id].角色.数据.银子 = 玩家数据[id].角色.数据.银子 - 银子

		玩家数据[id].角色:日志记录(format("[给予系统-发起]接受账号为[%s][%s][%s]角色%s两银子，初始银子为%s，余额为%s两银子", 玩家数据[对方id].账号, 对方id, 玩家数据[对方id].角色.数据.名称, 银子, 之前银子, 玩家数据[id].角色.数据.银子))

		local 之前银子 = 玩家数据[对方id].角色.数据.银子
		玩家数据[对方id].角色.数据.银子 = 玩家数据[对方id].角色.数据.银子 + 银子

		玩家数据[对方id].角色:日志记录(format("[给予系统-接受]发起账号为[%s][%s][%s]角色%s两银子，初始银子为%s，余额为%s两银子", 玩家数据[id].账号, id, 玩家数据[id].角色.数据.名称, 银子, 之前银子, 玩家数据[对方id].角色.数据.银子))
		常规提示(id, format("#Y/你给了%s%s两银子", 名称1, 银子))
		常规提示(对方id, format("#Y/%s给了你%s两银子", 名称, 银子))
	end

	for n = 1, 3 do
		if 数据.格子[n] ~= nil then
			local 格子 = 数据.格子[n]

			if 格子 ~= nil then
				local 道具id = 玩家数据[id].角色.数据.道具[数据.格子[n]]

				if 道具id ~= nil and 玩家数据[id].道具.数据[道具id] ~= nil then
					if 玩家数据[id].道具.数据[道具id].绑定 or 玩家数据[id].道具.数据[道具id].不可交易 or 玩家数据[id].道具.数据[道具id].锁定 then
						常规提示(id, "#Y/该物品无法交易或给予给他人")
					else
						local 对方格子 = 玩家数据[对方id].角色:取道具格子()

						if 对方格子 == 0 then
							常规提示(id, "#Y/对方身上没有足够的空间")
						else
							local 对方道具 = 玩家数据[对方id].道具:取新编号()
							local 道具名称 = 玩家数据[id].道具.数据[道具id].名称
							local 道具识别码 = 玩家数据[id].道具.数据[道具id].识别码
							玩家数据[对方id].道具.数据[对方道具] = table.loadstring(table.tostring(玩家数据[id].道具.数据[道具id]))
							玩家数据[对方id].角色.数据.道具[对方格子] = 对方道具
							玩家数据[id].道具.数据[道具id] = nil
							玩家数据[id].角色.数据.道具[数据.格子[n]] = nil

							常规提示(id, "#Y/你给了#P" .. 名称1 .. "#Y[" .. 玩家数据[对方id].道具.数据[对方道具].名称 .. "]")
							常规提示(对方id, "#P" .. 名称 .. "#Y给了你[" .. 玩家数据[对方id].道具.数据[对方道具].名称 .. "]")
							玩家数据[id].角色:日志记录(format("[给予系统-发起]物品名称%s、识别码%s,对方信息[%s][%s][%s]", 道具名称, 道具识别码, 玩家数据[对方id].账号, 对方id, 名称1))
							玩家数据[对方id].角色:日志记录(format("[给予系统-接受]物品名称%s、识别码%s,对方信息[%s][%s][%s]", 道具名称, 道具识别码, 玩家数据[id].账号, id, 名称))
							更改道具归属(道具识别码, 玩家数据[对方id].账号, 对方id, 名称1)
						end
					end
				end
			end
		end
	end

	道具刷新(id)
	道具刷新(对方id)

	玩家数据[id].给予数据 = nil
end

function 道具处理类:开启宝藏山小宝箱(id, 任务id)
	if 任务数据[任务id] == nil then
		常规提示(id, "#Y这个宝箱已经被其他玩家开启过了")

		return
	elseif 活动次数查询(id, "宝藏山小宝箱") == false then
		return
	elseif 宝藏山数据[id].小宝箱 > 10 then
		常规提示(id, "#Y你在本次活动中开启的小宝箱数量已达10个，无法再开启更多的小宝箱了")

		return
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
	宝藏山数据[id].小宝箱 = 宝藏山数据[id].小宝箱 + 1
	宝藏山数据.小宝箱 = 宝藏山数据.小宝箱 - 1

	地图处理类:当前消息广播1(5001, format("#G当前场景内小宝箱剩余数量为：#R%s#G个", 宝藏山数据.小宝箱))
	常规提示(id, "#Y你在本次活动中还可以开启#R" .. 10 - 宝藏山数据[id].小宝箱 .. "个小宝箱")
	添加活动次数(id, "宝藏山小宝箱")

	if 妖魔积分[id] == nil then
		妖魔积分[id] = {
			总计 = 0,
			当前 = 0,
			使用 = 0
		}
	end

	妖魔积分[id].当前 = 妖魔积分[id].当前 + 1
	妖魔积分[id].总计 = 妖魔积分[id].总计 + 1

	常规提示(id, "#Y/你获得了1点妖魔积分(可用于兑换和幸运转盘抽奖)")

	local 奖励参数 = 取随机数(1, 200)

	if 奖励参数 <= 10 then
		奖励名称[id] = 快捷给道具(id, 取强化石(), 取随机数(5, 10))
	elseif 奖励参数 <= 30 then
		奖励名称[id] = 快捷给道具(id, "月华露", 取随机数(1, 3), 50)
	elseif 奖励参数 <= 60 then
		if ygsj() <= 50 then
			奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(10, 12))
		else
			奖励名称[id] = 快捷给道具(id, "百炼精铁", 取随机数(10, 12))
		end

		广播消息({
			频道 = "xt",
			内容 = format("#S(宝藏山)#R/%s#Y在宝藏山四处搜寻宝箱，皇天不负有心人，终于发现了一个小宝箱，打开一瞧，里面的宝藏居然是#G/%s#Y", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 80 then
		if ygsj() <= 50 then
			奖励名称[id] = 快捷给道具(id, "灵饰指南书", 取随机数(10, 12))
		else
			奖励名称[id] = 快捷给道具(id, "元灵晶石", 取随机数(10, 12))
		end

		广播消息({
			频道 = "xt",
			内容 = format("#S(宝藏山)#R/%s#Y在宝藏山四处搜寻宝箱，皇天不负有心人，终于发现了一个小宝箱，打开一瞧，里面的宝藏居然是#G/%s#Y", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 110 then
		奖励名称[id] = 快捷给道具(id, "魔兽要诀", 1)
	elseif 奖励参数 <= 130 then
		奖励名称[id] = 快捷给道具(id, "金柳露", 取随机数(5, 10))
	else
		local 等级 = 玩家数据[id].角色.数据.等级
		local 经验 = 等级 * 150 * 2
		经验 = 取随机数(经验, 经验 * 2)

		玩家数据[id].角色:添加经验(经验, "宝藏山小箱子", 1)
	end
end

function 道具处理类:开启宝藏山大宝箱(id, 任务id)
	if 任务数据[任务id] == nil then
		常规提示(id, "#Y这个宝箱已经被其他玩家开启过了")

		return
	elseif 活动次数查询(id, "宝藏山大宝箱") == false then
		return
	elseif 宝藏山数据[id].大宝箱 > 5 then
		常规提示(id, "#Y你在本次活动中开启的大宝箱数量已达5个，无法再开启更多的大宝箱了")

		return
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
	宝藏山数据[id].大宝箱 = 宝藏山数据[id].大宝箱 + 1
	宝藏山数据.大宝箱 = 宝藏山数据.大宝箱 - 1

	地图处理类:当前消息广播1(5001, format("#G当前场景内大宝箱剩余数量为：#R%s#G个", 宝藏山数据.大宝箱))
	常规提示(id, "#Y你在本次活动中还可以开启#R" .. 5 - 宝藏山数据[id].大宝箱 .. "个大宝箱")
	添加活动次数(id, "宝藏山大宝箱")

	if 妖魔积分[id] == nil then
		妖魔积分[id] = {
			总计 = 0,
			当前 = 0,
			使用 = 0
		}
	end

	妖魔积分[id].当前 = 妖魔积分[id].当前 + 5
	妖魔积分[id].总计 = 妖魔积分[id].总计 + 5

	常规提示(id, "#Y/你获得了5点妖魔积分(可用于兑换和幸运转盘抽奖)")

	local 银子 = 取随机数(30000, 50000)

	玩家数据[id].角色:添加银子(银子, "宝藏山大箱子", 1)

	local 奖励参数 = 取随机数(1, 200)

	if 奖励参数 <= 10 then
		奖励名称[id] = 快捷给道具(id, 取强化石(), 取随机数(5, 30))

		广播消息({
			频道 = "xt",
			内容 = format("#S(宝藏山)#R/%s#Y在宝藏山四处搜寻宝箱，皇天不负有心人，终于发现了一个大宝箱，打开一瞧，里面的宝藏居然是#G/%s#Y", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 30 then
		奖励名称[id] = 快捷给道具(id, "月华露", 取随机数(1, 3), 100)

		广播消息({
			频道 = "xt",
			内容 = format("#S(宝藏山)#R/%s#Y在宝藏山四处搜寻宝箱，皇天不负有心人，终于发现了一个大宝箱，打开一瞧，里面的宝藏居然是#G/%s#Y", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 80 then
		if ygsj() <= 50 then
			奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(12, 13))
		else
			奖励名称[id] = 快捷给道具(id, "百炼精铁", 取随机数(12, 13))
		end

		广播消息({
			频道 = "xt",
			内容 = format("#S(宝藏山)#R/%s#Y在宝藏山四处搜寻宝箱，皇天不负有心人，终于发现了一个大宝箱，打开一瞧，里面的宝藏居然是#G/%s#Y", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 120 then
		奖励名称[id] = 快捷给道具(id, "五宝", 1)

		广播消息({
			频道 = "xt",
			内容 = format("#S(宝藏山)#R/%s#Y在宝藏山四处搜寻宝箱，皇天不负有心人，终于发现了一个大宝箱，打开一瞧，里面的宝藏居然是#G/%s#Y", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 150 then
		奖励名称[id] = 快捷给道具(id, "超级金柳露", 取随机数(1, 10))

		广播消息({
			频道 = "xt",
			内容 = format("#S(宝藏山)#R/%s#Y在宝藏山四处搜寻宝箱，皇天不负有心人，终于发现了一个大宝箱，打开一瞧，里面的宝藏居然是#G/%s#Y", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 160 then
		奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)

		广播消息({
			频道 = "xt",
			内容 = format("#S(宝藏山)#R/%s#Y在宝藏山四处搜寻宝箱，皇天不负有心人，终于发现了一个大宝箱，打开一瞧，里面的宝藏居然是#G/%s#Y", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 170 then
		local 名称 = "仙玉"

		添加仙玉(取随机数(100, 300), 玩家数据[id].账号, id, "宝藏山")
		常规提示(id, "#Y/你获得了" .. 名称)
		广播消息({
			频道 = "xt",
			内容 = format("#S(宝藏山)#R/%s#Y在宝藏山四处搜寻宝箱，皇天不负有心人，终于发现了一个大宝箱，打开一瞧，里面的宝藏居然是#G/%s#Y", 玩家数据[id].角色.数据.名称, "仙玉")
		})
	else
		local 等级 = 玩家数据[id].角色.数据.等级
		local 经验 = 等级 * 300 * 2

		玩家数据[id].角色:添加经验(经验, "宝藏山大箱子", 1)
	end
end

function 道具处理类:鉴定装备(连接id, id)
	if 玩家数据[id].鉴定装备 == nil or 玩家数据[id].角色.数据.道具[玩家数据[id].鉴定装备] == nil then
		添加最后对话(id, "该装备不存在！")

		return
	end

	local 道具id = 玩家数据[id].角色.数据.道具[玩家数据[id].鉴定装备]

	if self.数据[道具id].总类 ~= 2 or self.数据[道具id].灵饰 or self.数据[道具id].分类 == 9 then
		添加最后对话(id, "该物品我无法鉴定")

		return
	elseif self.数据[道具id].鉴定 == true or self.数据[道具id].鉴定 == nil then
		添加最后对话(id, "该装备已经鉴定过了")

		return
	elseif self.数据[道具id].级别限制 > 60 then
		添加最后对话(id, "等级大于60级的装备需要用图鉴鉴定了!")

		return
	end

	local 银子 = self:取装备价格(道具id)

	玩家数据[id].角色:扣除银子(银子, 0, 0, "鉴定装备", 1)

	self.数据[道具id].鉴定 = true
	self.数据[道具id].耐久 = 500

	刷新道具行囊单格(id, "道具", 玩家数据[id].鉴定装备, 道具id)
	常规提示(id, "#Y/恭喜你，装备鉴定成功!")
end

取福利宝箱奖励 = function(id, 战斗)
	if 掉率模式 == 1 then
		通用给奖励(id, nil, "福利宝箱", true, 战斗)
	else
		奖励次数[id] = 1

		if 战斗 ~= nil then
			奖励次数[id] = 取奖励次数(id)
		end

		for i = 1, 奖励次数[id] do
			local 奖励参数 = ygsj()

			if 奖励参数 <= 1 then
				礼包奖励类:随机装备(id, 100, "无级别限制")

				奖励名称[id] = "100级无级别装备"

				常规提示(id, "#Y/你获得了" .. 奖励名称[id])
				广播消息({
					频道 = "xt",
					内容 = format("#S(福利宝箱)#R/%s#Y少侠开启福利宝箱时，里面居然藏着美味的海鲜，少侠口水直流，猛得咬下去，居然硌掉了大门牙，拿出来一看居然是#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 40 then
				奖励名称[id] = "5W银子"

				玩家数据[id].角色:添加银子(50000, "福利宝箱", 1)
				常规提示(id, "#Y/你获得了" .. 奖励名称[id])
			elseif 奖励参数 <= 50 then
				奖励名称[id] = 快捷给道具(id, "魔兽要诀", 1)
			elseif 奖励参数 <= 53 then
				奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)

				广播消息({
					频道 = "xt",
					内容 = format("#S(福利宝箱)#R/%s#Y少侠开启福利宝箱时，里面居然藏着美味的海鲜，少侠口水直流，猛得咬下去，居然硌掉了大门牙，拿出来一看居然是#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 80 then
				奖励名称[id] = 快捷给道具(id, "五宝", 1)

				广播消息({
					频道 = "xt",
					内容 = format("#S(福利宝箱)#R/%s#Y少侠开启福利宝箱时，里面居然藏着美味的海鲜，少侠口水直流，猛得咬下去，居然硌掉了大门牙，拿出来一看居然是#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 95 then
				奖励名称[id] = 快捷给道具(id, "魔兽残卷", 1)

				广播消息({
					频道 = "xt",
					内容 = format("#S(福利宝箱)#R/%s#Y少侠开启福利宝箱时，里面居然藏着美味的海鲜，少侠口水直流，猛得咬下去，居然硌掉了大门牙，拿出来一看居然是#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			else
				奖励名称[id] = 快捷给道具(id, "坐骑内丹", 1)

				广播消息({
					频道 = "xt",
					内容 = format("#S(福利宝箱)#R/%s#Y少侠开启福利宝箱时，里面居然藏着美味的海鲜，少侠口水直流，猛得咬下去，居然硌掉了大门牙，拿出来一看居然是#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			end
		end
	end
end

function 道具处理类:开启福利宝箱(id, 任务id)
	if 任务数据[任务id] == nil then
		常规提示(id, "#Y这个宝箱已经被其他玩家开启过了")

		return
	end

	if 掉率模式 == 1 then
		取福利宝箱奖励(id)
	else
		if 添加活动次数(id, "福利宝箱") == false then
			return
		end

		取福利宝箱奖励(id)
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
end

function 道具处理类:开启修炼宝箱(id, 任务id)
	if 任务数据[任务id] == nil then
		常规提示(id, "#Y这个修炼宝箱已经被其他玩家开启过了")

		return false
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil

	return true
end

function 道具处理类:开启车迟福利宝箱(id, 任务id)
	if 任务数据[任务id] == nil then
		常规提示(id, "#Y这个宝箱已经被其他玩家开启过了")

		return
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
	local 奖励参数 = ygsj()

	if 奖励参数 <= 2 then
		奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 25 then
		奖励名称[id] = 快捷给道具(id, "金柳露", 1)
	elseif 奖励参数 <= 35 then
		奖励名称[id] = 快捷给道具(id, "超级金柳露", 1)

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 45 then
		奖励名称[id] = 快捷给道具(id, 取宝石(), 取随机数(2, 3))

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 70 then
		奖励名称[id] = 快捷给道具(id, "魔兽要诀", 1)

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 90 then
		奖励名称[id] = 快捷给道具(id, "金银锦盒", 取随机数(2, 10))

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	else
		奖励名称[id] = 快捷给道具(id, 取强化石(), 10)

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	end
end

function 道具处理类:开启车迟胜利宝箱(id, 任务id)
	if 任务数据[任务id] == nil then
		常规提示(id, "#Y这个宝箱已经被其他玩家开启过了")

		return
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
	local 银子 = 取随机数(100000, 500000)

	玩家数据[id].角色:添加银子(银子, "车迟斗法绑定宝箱", 1)

	local 奖励参数 = ygsj()

	if 奖励参数 <= 5 then
		奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 30 then
		奖励名称[id] = 快捷给道具(id, "九转金丹", 2)

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 55 then
		奖励名称[id] = 快捷给道具(id, "修炼果", 2)

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 70 then
		奖励名称[id] = 快捷给道具(id, 取宝石(), 取随机数(2, 3))

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 80 then
		奖励名称[id] = 快捷给道具(id, "魔兽要诀", 1)

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 72 then
		奖励名称[id] = 快捷给道具(id, "特殊魔兽要诀", 1)

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 92 then
		奖励名称[id] = 快捷给道具(id, "金银锦盒", 10)

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	else
		奖励名称[id] = 快捷给道具(id, 取强化石(), 10)

		广播消息({
			频道 = "xt",
			内容 = format("#S(副本-车迟斗法)#R/%s#Y在#R车迟斗法#Y副本中表现卓越，因此获得了三清奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	end
end

function 道具处理类:发放在线奖励(id)
	玩家数据[id].道具:给予书铁(id, {
		7,
		8
	}, "指南书")
	玩家数据[id].道具:给予书铁(id, {
		7,
		8
	}, "精铁")
	玩家数据[id].角色:添加经验(500000, "测试奖励")
	玩家数据[id].角色:添加银子(300000, "测试奖励", 1)
	玩家数据[id].道具:给予道具(id, "彩果", 取随机数(1, 5))
	玩家数据[id].道具:给予道具(id, "神兜兜", 取随机数(1, 5))
	广播消息({
		频道 = "xt",
		内容 = format("#S(在线奖励)#R/%s#Y本日在线因此获得了游戏管理员赠送的#G/%s#Y", 玩家数据[id].角色.数据.名称, "70-80级书铁")
	})
end

function 道具处理类:迷宫奖励(id)
	if 迷宫数据[id] ~= nil then
		添加最后对话(id, "你不是已经领取过奖励了吗？")

		return
	elseif 活动次数查询(id, "幻域迷宫") == false then
		return
	end

	迷宫数据[id] = true
	local 等级 = 玩家数据[id].角色.数据.等级
	local 经验 = 等级 * 1000 * 2
	local 银子 = 等级 * 1000 * 2

	添加活动次数(id, "幻域迷宫")

	if 妖魔积分[id] == nil then
		妖魔积分[id] = {
			总计 = 0,
			当前 = 0,
			使用 = 0
		}
	end

	妖魔积分[id].当前 = 妖魔积分[id].当前 + 50
	妖魔积分[id].总计 = 妖魔积分[id].总计 + 50

	常规提示(id, "#Y/你获得了50点妖魔积分(可用于兑换和幸运转盘抽奖)")
	玩家数据[id].角色:添加经验(经验, "幻域迷宫")
	玩家数据[id].角色:添加银子(银子, "幻域迷宫", 1)

	活跃数据[id].活跃度 = 活跃数据[id].活跃度 + 30
	玩家数据[id].角色.数据.累积活跃.当前积分 = 玩家数据[id].角色.数据.累积活跃.当前积分 + 活跃数据[id].活跃度
	local 奖励参数 = ygsj()

	if 奖励参数 <= 1 then
		礼包奖励类:随机装备(id, 100)

		奖励名称[id] = "100级装备"
	elseif 奖励参数 <= 30 then
		奖励名称[id] = 快捷给道具(id, "神兜兜", 取随机数(1, 5))
	elseif 奖励参数 <= 60 then
		奖励名称[id] = 快捷给道具(id, "七彩石", 取随机数(1, 2))
	elseif 奖励参数 <= 100 then
		奖励名称[id] = 快捷给道具(id, "彩果", 取随机数(5, 10))
	end

	广播消息({
		频道 = "xt",
		内容 = format("#S(幻域迷宫)#R/%s#Y以惊人的速度率先通过了所有迷宫，获得了迷宫守卫额外奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 奖励名称[id])
	})

	if 迷宫数据.奖励 < 5 then
		迷宫数据.奖励 = 迷宫数据.奖励 + 1

		if ygsj() <= 50 then
			奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)
		else
			奖励名称[id] = 快捷给道具(id, "高级召唤兽内丹", 1)
		end

		广播消息({
			频道 = "xt",
			内容 = format("#S(幻域迷宫)#R/%s#Y以惊人的速度率先通过了所有迷宫，获得了迷宫守卫额外奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	end

	道具刷新(id, 1)
end

function 道具处理类:高级藏宝图处理(id)
	local 名称 = nil
	local 奖励参数 = ygsj()

	if 奖励参数 <= 5 then
		名称 = "神兜兜"

		self:给予道具(id, 名称, 1)
		常规提示(id, "#Y/你获得了额外的" .. 名称)
	elseif 奖励参数 <= 80 then
		名称 = "彩果"

		self:给予道具(id, 名称, 1)
		常规提示(id, "#Y/你获得了额外的" .. 名称)
	end

	local 通知开关 = true
	local 奖励参数 = ygsj(130)

	if 奖励参数 <= 1 then
		if ygsj() <= 50 then
			奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(10, 13))
		else
			奖励名称[id] = 快捷给道具(id, "百炼精铁", 取随机数(10, 13))
		end
	elseif 奖励参数 <= 3 then
		奖励名称[id] = 快捷给道具(id, "属性石", 1)
	elseif 奖励参数 <= 5 then
		奖励名称[id] = 快捷给道具(id, "资质丸", 1)
	elseif 奖励参数 <= 6 then
		奖励名称[id] = 快捷给道具(id, "特殊魔兽要诀", 1)
	elseif 奖励参数 <= 15 then
		常规提示(id, "#Y/你一锄头挖下去，似乎触碰到了一个奇形怪状的物体")
		任务处理类:开启妖王(id)

		通知开关 = false
	elseif 奖励参数 <= 17 then
		玩家数据[id].装备:生成指定召唤兽装备(id, 取随机数(10, 12), 召唤兽装备种类[取随机数(1, 300) % 3 + 1], "无级别限制")
		常规提示(id, "#Y/你获得了95级~115级无级别召唤兽装备一个")

		奖励名称[id] = "95级~115级无级别召唤兽装备"
	elseif 奖励参数 <= 19 then
		奖励名称[id] = 快捷给道具(id, "特效石碎片", 1)
	elseif 奖励参数 <= 21 then
		奖励名称[id] = 快捷给道具(id, "七彩石", 1)
	elseif 奖励参数 <= 23 then
		奖励名称[id] = 快捷给道具(id, "五行石", 1)
	elseif 奖励参数 <= 24 then
		奖励名称[id] = 快捷给道具(id, "特技石", 1)
	elseif 奖励参数 <= 30 then
		奖励名称[id] = 快捷给道具(id, "元灵晶石", 取随机数(8, 12))
	elseif 奖励参数 <= 36 then
		奖励名称[id] = 快捷给道具(id, "灵饰指南书", 取随机数(8, 12))
	elseif 奖励参数 <= 37 then
		if ygsj() <= 50 then
			奖励名称[id] = 快捷给道具(id, "资质丸", 1)
		else
			奖励名称[id] = 快捷给道具(id, "属性石", 1)
		end
	elseif 奖励参数 <= 42 then
		奖励名称[id] = 快捷给道具(id, "通灵神符", 1)
	elseif 奖励参数 <= 44 then
		奖励名称[id] = 快捷给道具(id, "通灵神戒", 1)
	elseif 奖励参数 <= 52 then
		奖励名称[id] = 快捷给道具(id, "高级通灵重置丹", 1)
	elseif 奖励参数 <= 56 then
		奖励名称[id] = 快捷给道具(id, "超级通灵重置丹", 1)
	elseif 奖励参数 <= 65 then
		奖励名称[id] = 快捷给道具(id, "驾驭宝典", 1 + ygsj(2))
	elseif 奖励参数 <= 75 then
		奖励名称[id] = 快捷给道具(id, "未激活的符石", 1)
	elseif 奖励参数 <= 80 then
		奖励名称[id] = 快捷给道具(id, "未激活的符石", 2)
	elseif 奖励参数 <= 85 then
		奖励名称[id] = 快捷给道具(id, "灵饰洗练石", 1)
	elseif 奖励参数 <= 92 then
		奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)
	elseif 奖励参数 <= 100 then
		奖励名称[id] = 快捷给道具(id, "神兜兜", 1)
	elseif 奖励参数 <= 101 then
		奖励名称[id] = 快捷给道具(id, "元宵", 1)
	elseif 奖励参数 <= 103 then
		奖励名称[id] = 快捷给道具(id, "陨铁", 1)
	elseif 奖励参数 <= 110 then
		奖励名称[id] = 快捷给道具(id, "高级召唤兽内丹", 1)
	else
		奖励名称[id] = 快捷给道具(id, "坐骑内丹", 1)
	end

	if 通知开关 then
		广播消息({
			频道 = "xt",
			内容 = format("#S(高级藏宝图)#R/#Y据说#R%s#Y拿着高级藏宝图到野外挖到了#G/%s", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	end

	if 成就数据[id].高级挖宝 == nil then
		成就数据[id].高级挖宝 = 0
	end

	成就数据[id].高级挖宝 = 成就数据[id].高级挖宝 + 1

	if 成就数据[id].高级挖宝 == 1 then
		local 成就提示 = "再世镖王"
		local 成就提示1 = "完成1次了高级藏宝图挖宝"

		快捷给道具(id, "特赦令牌", 1)
		发送数据(玩家数据[id].连接id, 149, {
			内容 = 成就提示,
			内容1 = 成就提示1
		})
	elseif 成就数据[id].高级挖宝 == 1000 then
		local 成就提示 = "再世镖王"
		local 成就提示1 = "完成1000次了高级藏宝图挖宝"
		成就数据[id].成就点 = 成就数据[id].成就点 + 1

		常规提示(id, "#Y/恭喜你获得了1点成就")
		发送数据(玩家数据[id].连接id, 149, {
			内容 = 成就提示,
			内容1 = 成就提示1
		})
		玩家数据[id].角色:添加称谓(id, "快递小哥")
		快捷给道具(id, "特赦令牌", 10)
	end
end

function 道具处理类:低级藏宝图处理(id)
	local 通知开关 = true
	local 奖励参数 = ygsj(160)

	if 奖励参数 <= 5 then
		if ygsj() <= 50 then
			奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(4, 9))
		else
			奖励名称[id] = 快捷给道具(id, "百炼精铁", 取随机数(4, 9))
		end
	elseif 奖励参数 <= 6 then
		local 名称 = "60-90级无级别装备"

		if ygsj() <= 50 then
			礼包奖励类:取随机装备(id, 取随机数(60, 90), "无级别限制")
		else
			礼包奖励类:取随机武器(id, 取随机数(60, 90), "无级别限制")
		end

		常规提示(id, "#Y/你得到了" .. 名称)

		通知开关 = false

		广播消息({
			频道 = "xt",
			内容 = format("#S(低级藏宝图)#R/#Y据说#R%s#Y拿着低级藏宝图到野外挖到了一个#G/%s", 玩家数据[id].角色.数据.名称, 名称)
		})
	elseif 奖励参数 <= 10 then
		奖励名称[id] = 快捷给道具(id, "召唤兽内丹", 1)
	elseif 奖励参数 <= 15 then
		通知开关 = false

		战斗准备类:创建战斗(id + 0, 100003)
		常规提示(id, "#Y/你一锄头挖下去，似乎触碰到了一个奇形怪状的物体")
	elseif 奖励参数 <= 25 then
		奖励名称[id] = 快捷给道具(id, "五宝", 1)
	elseif 奖励参数 <= 33 then
		奖励名称[id] = 快捷给道具(id, "通灵神臂", 1)
		通知开关 = false
	elseif 奖励参数 <= 35 then
		奖励名称[id] = 快捷给道具(id, "通灵神符", 1)
	elseif 奖励参数 <= 45 then
		奖励名称[id] = 快捷给道具(id, "通灵重置丹", 1)
		通知开关 = false
	elseif 奖励参数 <= 48 then
		奖励名称[id] = 快捷给道具(id, "高级通灵重置丹", 1)
	elseif 奖励参数 <= 55 then
		奖励名称[id] = 快捷给道具(id, "吸附石", 1)
		通知开关 = false
	elseif 奖励参数 <= 70 then
		奖励名称[id] = 快捷给道具(id, "魔兽要诀", 1)
		通知开关 = false
	elseif 奖励参数 <= 75 then
		玩家数据[id].装备:生成指定召唤兽装备(id, 取随机数(5, 9), 召唤兽装备种类[取随机数(1, 300) % 3 + 1])
		常规提示(id, "#Y/你获得了一个45~85级宠物装备")
	elseif 奖励参数 <= 78 then
		奖励名称[id] = 快捷给道具(id, "未激活的符石", 1)
	elseif 奖励参数 <= 79 then
		if ygsj() <= 50 then
			奖励名称[id] = 快捷给道具(id, "资质丸", 1)
		else
			奖励名称[id] = 快捷给道具(id, "属性石", 1)
		end
	elseif 奖励参数 <= 85 then
		奖励名称[id] = 快捷给道具(id, "驾驭宝典", 1)
	elseif 奖励参数 <= 90 then
		奖励名称[id] = 快捷给道具(id, "属性转换符", 1)
	elseif 奖励参数 <= 100 then
		奖励名称[id] = 快捷给道具(id, "超级金柳露", 1)
	elseif 奖励参数 <= 115 then
		奖励名称[id] = 快捷给道具(id, "金柳露", 1)
	elseif 奖励参数 <= 140 then
		玩家数据[id].角色:添加银子(取随机数(10000, 50000), "挖宝", 1)

		通知开关 = false
	else
		常规提示(id, "#Y/你一锄头挖下去，似乎触碰到了一个奇形怪状的物体")
		任务处理类:设置封妖任务(id)

		通知开关 = false
	end

	if 通知开关 then
		广播消息({
			频道 = "xt",
			内容 = format("#S(低级藏宝图)#R/#Y据说#R%s#Y拿着低级藏宝图到野外挖到了#G/%s", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	end

	if 成就数据[id].挖宝 == nil then
		成就数据[id].挖宝 = 0
	end

	成就数据[id].挖宝 = 成就数据[id].挖宝 + 1

	if 成就数据[id].挖宝 == 1 then
		local 成就提示 = "再世镖王"
		local 成就提示1 = "完成1次了挖宝"

		快捷给道具(id, "五宝", 1)
		发送数据(玩家数据[id].连接id, 149, {
			内容 = 成就提示,
			内容1 = 成就提示1
		})
	elseif 成就数据[id].挖宝 == 1000 then
		local 成就提示 = "再世镖王"
		local 成就提示1 = "完成1000次了挖宝"

		快捷给道具(id, "通灵神戒", 1)

		成就数据[id].成就点 = 成就数据[id].成就点 + 1

		常规提示(id, "#Y/恭喜你获得了1点成就")
		发送数据(玩家数据[id].连接id, 149, {
			内容 = 成就提示,
			内容1 = 成就提示1
		})
		玩家数据[id].角色:添加称谓(id, "快递小哥")
		快捷给道具(id, "资质丸", 1)
	end
end

function 道具处理类:妖魔积分兑换(连接id, id)
	if 妖魔积分[id] == nil then
		local 对话 = "你还没有获得妖魔积分，请先去降服一些妖魔鬼怪后再来吧。"

		发送数据(连接id, 1501, {
			名称 = "袁天罡",
			模型 = "袁天罡",
			对话 = 对话,
			选项 = xx
		})

		return
	elseif 妖魔积分[id].当前 < 3 then
		local 对话 = "本次操作需要消耗3点妖魔积分。"

		发送数据(连接id, 1501, {
			名称 = "袁天罡",
			模型 = "袁天罡",
			对话 = 对话,
			选项 = xx
		})

		return
	end

	妖魔积分[id].当前 = 妖魔积分[id].当前 - 3
	妖魔积分[id].使用 = 妖魔积分[id].使用 + 3
	local 奖励参数 = ygsj()

	if 奖励参数 <= 15 then
		奖励名称[id] = 快捷给道具(id, "魔兽要诀", 1)
	elseif 奖励参数 <= 20 then
		奖励名称[id] = 快捷给道具(id, 取强化石(), 取随机数(1, 2))

		常规提示(id, "#Y/你获得了" .. 名称)
	elseif 奖励参数 <= 50 then
		奖励名称[id] = 快捷给道具(id, "彩果", 1)
	elseif 奖励参数 <= 70 then
		奖励名称[id] = 快捷给道具(id, "超级金柳露", 1)
	else
		玩家数据[id].角色:添加银子(20000, "妖魔鬼怪兑换奖励", 1)
	end
end

function 道具处理类:完成宝图遇怪(id)
	local 奖励参数 = ygsj()

	if 奖励参数 <= 30 then
		奖励名称[id] = 快捷给道具(id, 取宝石(), 取随机数(3, 10))
	elseif 奖励参数 <= 60 then
		奖励名称[id] = 快捷给道具(id, "五宝", 1)
	else
		self:取随机装备(id, 取随机数(6, 12))
		发送数据(玩家数据[id].连接id, 38, {
			内容 = "你得到了#R60-120级装备"
		})
	end

	local 临时经验 = 取等级(id) * 50 * 20 * 10

	玩家数据[id].角色:添加经验(临时经验, "挖图遇怪", 1)
end

function 道具处理类:取五宝()
	return 五宝列表[ygsj(5)]
end

修正灵饰等级 = function(等级)
	if 等级 >= 160 then
		等级 = 160
	elseif 等级 >= 140 then
		等级 = 140
	elseif 等级 >= 120 then
		等级 = 120
	elseif 等级 >= 100 then
		等级 = 100
	elseif 等级 >= 80 then
		等级 = 80
	elseif 等级 >= 60 then
		等级 = 60
	else
		等级 = 60
	end

	return 等级
end

function 道具处理类:灵饰处理(id, 道具id, 等级, 强化, 类型, 熟练度)
	熟练度 = (熟练度 or 0) + 0
	self.幻化id = 道具id
	self.数据[self.幻化id].幻化属性 = {
		附加 = {}
	}
	self.数据[self.幻化id].识别码 = id .. "_" .. os.time() .. "_" .. 取随机数(1000, 9999999) .. "_" .. 随机序列
	随机序列 = 随机序列 + 1
	self.临时属性 = 灵饰属性[类型].主属性[取随机数(1, #灵饰属性[类型].主属性)]
	self.临时数值 = 灵饰属性.基础1[self.临时属性][等级].b
	self.临时下限 = 灵饰属性.基础1[self.临时属性][等级].a
	self.临时数值 = 熟练度影响计算(self.临时下限, self.临时数值, 熟练度)
	self.数据[self.幻化id].耐久 = 熟练度影响计算(500, 700, 熟练度)
	local 上限数量 = 灵饰最低副词条数
	local 最大上限 = 3

	if 强化 == 1 then
		self.临时数值 = math.ceil(self.临时数值 * 灵饰强化打造加成)
		上限数量 = 上限数量 + 1
		最大上限 = 4
		self.数据[self.幻化id].耐久 = qz1(self.数据[self.幻化id].耐久 * 灵饰强化打造加成)
	end

	self.数据[self.幻化id].幻化属性.基础 = {
		强化 = 0,
		类型 = self.临时属性,
		数值 = self.临时数值
	}

	for n = 1, 取随机数(math.min(上限数量, 最大上限), 最大上限) do
		self.临时属性 = 灵饰属性[类型].副属性[取随机数(1, #灵饰属性[类型].副属性)]
		self.临时数值 = 灵饰属性.基础[self.临时属性][等级].b
		self.临时下限 = 灵饰属性.基础[self.临时属性][等级].a
		self.临时数值 = 熟练度影响计算(self.临时下限, self.临时数值, 熟练度)

		for i = 1, #self.数据[self.幻化id].幻化属性.附加 do
			if self.数据[self.幻化id].幻化属性.附加[i].类型 == self.临时属性 then
				self.数据[self.幻化id].幻化属性.附加[i].数值 = self.临时数值
			end
		end

		self.数据[self.幻化id].幻化属性.附加[n] = {
			强化 = 0,
			类型 = self.临时属性,
			数值 = self.临时数值
		}
	end

	local tx = 取随机数(1, 10000)
	local txgl = f函数.读配置(程序目录 .. "配置文件.ini", "主要配置", "打造特效概率") or 10

	if 强化 == 1 then
		txgl = f函数.读配置(程序目录 .. "配置文件.ini", "主要配置", "强化打造特效概率") or 30
	end

	if tx <= (txgl + 取熟练度加成(熟练度, "特效")) * 100 then
		self.数据[self.幻化id].特效 = {
			灵饰特效[取随机数(1, #灵饰特效)]
		}
	end
end

function 道具处理类:烹饪处理(连接id, 数字id, 数据)
	local 临时等级 = 玩家数据[数字id].角色:取生活技能等级("烹饪技巧")
	local 临时消耗 = math.floor(临时等级 / 10) + 10

	if 玩家数据[数字id].角色.数据.活力 < 临时消耗 then
		常规提示(数字id, "本次操作需要消耗" .. 临时消耗 .. "点活力")

		return
	end

	local 物品表 = {}
	玩家数据[数字id].角色.数据.活力 = 玩家数据[数字id].角色.数据.活力 - 临时消耗

	体活刷新(数字id)

	if 临时等级 <= 4 then
		物品表 = {
			"包子"
		}
	elseif 临时等级 <= 9 then
		物品表 = {
			"包子",
			"包子",
			"佛跳墙",
			"包子"
		}
	elseif 临时等级 <= 14 then
		物品表 = {
			"包子",
			"包子",
			"佛跳墙",
			"包子",
			"烤鸭"
		}
	elseif 临时等级 <= 19 then
		物品表 = {
			"包子",
			"珍露酒",
			"佛跳墙",
			"烤鸭",
			"佛跳墙",
			"佛跳墙",
			"包子",
			"烤鸭"
		}
	elseif 临时等级 <= 24 then
		物品表 = {
			"包子",
			"珍露酒",
			"佛跳墙",
			"佛跳墙",
			"佛跳墙",
			"烤鸭",
			"包子",
			"烤鸭",
			"虎骨酒",
			"佛跳墙",
			"佛跳墙",
			"包子",
			"女儿红"
		}
	elseif 临时等级 <= 29 then
		物品表 = {
			"包子",
			"珍露酒",
			"豆斋果",
			"佛跳墙",
			"烤鸭",
			"包子",
			"佛跳墙",
			"佛跳墙",
			"烤鸭",
			"虎骨酒",
			"烤鸭",
			"包子",
			"女儿红"
		}
	elseif 临时等级 <= 34 then
		物品表 = {
			"佛跳墙",
			"佛跳墙",
			"佛跳墙",
			"珍露酒",
			"烤鸭",
			"烤鸭",
			"豆斋果",
			"烤鸭",
			"臭豆腐",
			"佛跳墙",
			"烤鸭",
			"虎骨酒",
			"女儿红"
		}
	elseif 临时等级 <= 39 then
		物品表 = {
			"烤肉",
			"桂花丸",
			"佛跳墙",
			"佛跳墙",
			"珍露酒",
			"烤鸭",
			"烤鸭",
			"豆斋果",
			"烤鸭",
			"臭豆腐",
			"佛跳墙",
			"烤鸭",
			"虎骨酒",
			"女儿红"
		}
	elseif 临时等级 <= 44 then
		物品表 = {
			"烤肉",
			"翡翠豆腐",
			"桂花丸",
			"佛跳墙",
			"佛跳墙",
			"珍露酒",
			"烤鸭",
			"烤鸭",
			"豆斋果",
			"烤鸭",
			"臭豆腐",
			"佛跳墙",
			"烤鸭",
			"虎骨酒",
			"女儿红"
		}
	elseif 临时等级 <= 49 then
		物品表 = {
			"烤肉",
			"长寿面",
			"翡翠豆腐",
			"桂花丸",
			"佛跳墙",
			"佛跳墙",
			"珍露酒",
			"烤鸭",
			"烤鸭",
			"豆斋果",
			"烤鸭",
			"臭豆腐",
			"佛跳墙",
			"烤鸭",
			"虎骨酒",
			"女儿红"
		}
	elseif 临时等级 <= 54 then
		物品表 = {
			"烤肉",
			"梅花酒",
			"长寿面",
			"翡翠豆腐",
			"桂花丸",
			"佛跳墙",
			"佛跳墙",
			"珍露酒",
			"烤鸭",
			"烤鸭",
			"豆斋果",
			"烤鸭",
			"臭豆腐",
			"佛跳墙",
			"烤鸭",
			"虎骨酒",
			"女儿红"
		}
	elseif 临时等级 <= 59 then
		物品表 = {
			"烤肉",
			"百味酒",
			"梅花酒",
			"长寿面",
			"翡翠豆腐",
			"桂花丸",
			"佛跳墙",
			"佛跳墙",
			"珍露酒",
			"烤鸭",
			"烤鸭",
			"豆斋果",
			"烤鸭",
			"臭豆腐",
			"佛跳墙",
			"烤鸭",
			"虎骨酒",
			"女儿红"
		}
	elseif 临时等级 <= 64 then
		物品表 = {
			"烤肉",
			"蛇胆酒",
			"百味酒",
			"梅花酒",
			"长寿面",
			"翡翠豆腐",
			"桂花丸",
			"佛跳墙",
			"佛跳墙",
			"珍露酒",
			"烤鸭",
			"烤鸭",
			"豆斋果",
			"烤鸭",
			"臭豆腐",
			"佛跳墙",
			"烤鸭",
			"虎骨酒",
			"女儿红"
		}
	else
		物品表 = {
			"烤肉",
			"醉生梦死",
			"蛇胆酒",
			"百味酒",
			"梅花酒",
			"长寿面",
			"翡翠豆腐",
			"桂花丸",
			"佛跳墙",
			"佛跳墙",
			"珍露酒",
			"烤鸭",
			"烤鸭",
			"豆斋果",
			"烤鸭",
			"臭豆腐",
			"佛跳墙",
			"烤鸭",
			"虎骨酒",
			"女儿红"
		}
	end

	local 临时物品 = 物品表[取随机数(1, #物品表)]
	local 临时品质 = 0

	if 临时物品 ~= "包子" then
		临时品质 = 取随机数(math.floor(临时等级), 临时等级 * 2)
	end

	常规提示(数字id, "#W/经过一阵忙碌，你烹制出了#R/" .. 临时物品)
	self:给予道具(数字id, 临时物品, 1, 临时品质)
	道具刷新(数字id, 1)
end

function 道具处理类:炼药处理(连接id, 数字id, 数据)
	local 临时等级 = 玩家数据[数字id].角色:取生活技能等级("中药医理")
	local 临时消耗 = math.floor(临时等级 / 10) + 10

	if 玩家数据[数字id].角色.数据.活力 < 临时消耗 then
		常规提示(数字id, "本次操作需要消耗" .. 临时消耗 .. "点活力")

		return
	elseif 临时等级 < 1 then
		常规提示(数字id, "您的中药医理技能尚未达到1级，无法进行炼药操作")

		return
	elseif 玩家数据[数字id].角色.数据.银子 < 5000 then
		常规提示(数字id, "炼药需要消耗5000两银子")

		return
	end

	玩家数据[数字id].角色:扣除银子(5000, 0, 0, "炼药消耗", 1)

	玩家数据[数字id].角色.数据.活力 = 玩家数据[数字id].角色.数据.活力 - 临时消耗

	体活刷新(数字id)

	local 物品表 = {}
	物品表 = {
		"金香玉",
		"小还丹",
		"千年保心丹",
		"风水混元丹",
		"定神香",
		"蛇蝎美人",
		"九转回魂丹",
		"佛光舍利子",
		"十香返生丸",
		"金创药",
		"金创药",
		"金创药",
		"金创药",
		"五龙丹"
	}
	local 临时物品 = 物品表[取随机数(1, #物品表)]
	local 临时品质 = 0
	临时品质 = 取随机数(math.floor(临时等级), 临时等级 * 2)

	常规提示(数字id, "#W/恭喜你成功炼制出了#R/" .. 临时物品)
	self:给予道具(数字id, 临时物品, 1, 临时品质)
	道具刷新(数字id, 1)
end

function 道具处理类:染色处理(连接id, id, 数据)
	local 彩果数量 = 10

	for n = 1, #数据 do
		彩果数量 = 彩果数量 + 数据[n]
	end

	if 扣除道具(id, "彩果", 彩果数量) ~= true then
		return
	else
		常规提示(id, "染色成功！")

		玩家数据[id].角色.数据.染色组 = 数据

		发送数据(连接id, 30, 数据)
		地图处理类:更改染色(id, 数据, 玩家数据[id].角色.数据.染色方案)
	end
end

连抽列表 = {}

function 道具处理类:迷宫宝箱处理(连接id, id, 连抽次数)
	if 神秘宝箱[id] == nil then
		常规提示(id, "数据异常！")

		return
	end

	local 序号 = 神秘宝箱[id].中奖
	local 名称 = 神秘宝箱[id][序号].名称
	local 快捷 = {
		随机四级法宝 = 4,
		金刚石 = 1,
		夜光珠 = 1,
		属性转换符 = 1,
		九转金丹 = 1,
		超级通灵重置丹 = 1,
		源生之灵 = 1,
		高级魔兽要诀 = 1,
		五行石 = 1,
		龙鳞 = 1,
		通灵神符 = 0,
		祥瑞坐骑礼包 = 1,
		种族坐骑礼包 = 1,
		七彩石 = 1,
		特殊魔兽要诀 = 1,
		百炼晶石碎片 = 1,
		特技石 = 1,
		定魂珠 = 1,
		通灵重置丹 = 1,
		随机三级法宝 = 3,
		还魂秘术 = 1,
		黄帝内经 = 1,
		六艺修行书 = 1,
		驾驭宝典 = 1,
		避水珠 = 1,
		高级通灵重置丹 = 1,
		特效石碎片 = 1,
		召唤兽内丹 = 1,
		通灵神戒 = 0,
		蚩尤武诀 = 1,
		召唤兽蛋 = 1,
		魔兽要诀 = 1,
		神兜兜 = 1,
		坐骑内丹 = 1,
		高级召唤兽内丹 = 1,
		易经丹 = 1,
		修炼果 = 1,
		通灵神臂 = 0,
		超级金柳露 = 取随机数(3, 5),
		金柳露 = 取随机数(5, 10),
		钟灵石 = 取随机数(1, 2),
		彩果 = 取随机数(2, 3),
		百炼精铁 = 取随机数(10, 12),
		制造指南书 = 取随机数(10, 12),
		元灵晶石 = 取随机数(8, 12),
		灵饰指南书 = 取随机数(8, 12),
		随机法宝 = math.ceil(取随机数(1, 200) / 100),
		魔兽残卷 = 取随机数(1, 3)
	}

	for i = 1, #宝石列表 do
		快捷[宝石列表[i]] = 取随机数(2, 5)
	end

	if 快捷[名称] ~= nil then
		local mc1 = 名称
		local jp = nil

		if 名称 == "宝石" then
			mc1 = 宝石列表[取随机数(1, #宝石列表)]
		elseif 名称 == "源生之灵" or 名称 == "召唤兽蛋" then
			jp = 神秘宝箱[id][序号].说明
		elseif string.find(名称, "法宝") then
			mc1 = "法宝"
		end

		奖励名称[id] = 快捷给道具(id, mc1, 快捷[名称], jp)

		if 连抽次数 ~= nil then
			if 连抽列表[id] == nil then
				连抽列表[id] = {}
			end

			连抽列表[id][#连抽列表[id] + 1] = 奖励名称[id]

			if 连抽次数 == #连抽列表[id] then
				local mc = nil

				for i = 1, #连抽列表[id] do
					if i == 1 then
						mc = 连抽列表[id][i]
					else
						mc = mc .. "、" .. 连抽列表[id][i]
					end
				end

				广播消息({
					频道 = "xt",
					内容 = format("#S(幻域迷宫)#R/%s#Y开启#S" .. 连抽次数 .. "#Y次迷宫宝箱获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, mc)
				})

				连抽列表[id] = {}

				return
			end
		elseif 神秘宝箱[id][序号].广播 ~= false then
			广播消息({
				频道 = "xt",
				内容 = format("#S(幻域迷宫)#R/%s#Y开启迷宫宝箱获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
			})
		end
	end

	神秘宝箱[id] = nil
end

function 道具处理类:神秘宝箱处理(连接id, id, 数据, 连抽次数)
	if 神秘宝箱[id] == nil then
		常规提示(id, "数据异常！")

		return
	end

	local 序号 = 神秘宝箱[id].中奖
	local 名称 = 神秘宝箱[id][序号].名称
	local 随机数 = ygsj()
	local 快捷 = {
		["神行百变·坐骑礼包"] = 1,
		通灵神戒 = 0,
		通灵神符 = 0,
		超级金柳露 = 10,
		属性转换符 = 5,
		通灵神臂 = 2,
		特殊魔兽要诀 = 1,
		金柳露 = 99,
		高级魔兽要诀 = 1,
		五行石 = 1,
		百炼晶石 = 1,
		金银锦盒 = 50,
		七彩石 = 1,
		特赦令牌 = 3,
		坐骑内丹 = 3,
		通灵重置丹 = 10,
		超级通灵重置丹 = 1,
		高级召唤兽内丹 = 1,
		["百变坐骑·坐骑礼包"] = 1,
		高级通灵重置丹 = 2,
		特效石碎片 = 1,
		召唤兽内丹 = 1,
		百炼晶石碎片 = 取随机数(2, 3),
		神兜兜 = 取随机数(1, 5)
	}

	if 宝石列表1[名称] ~= nil then
		奖励名称[id] = 快捷给道具(id, 名称, 取随机数(4, 8))

		广播消息({
			频道 = "xt",
			内容 = format("#S(幸运抽奖)#R/%s#Y在抽奖使者处获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 名称 == "星辉石" then
		奖励名称[id] = 快捷给道具(id, 名称, 取随机数(3, 6))

		广播消息({
			频道 = "xt",
			内容 = format("#S(幸运抽奖)#R/%s#Y在抽奖使者处获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 快捷[名称] ~= nil then
		奖励名称[id] = 快捷给道具(id, 名称, 快捷[名称])

		if 连抽次数 ~= nil then
			if 连抽列表[id] == nil then
				连抽列表[id] = {}
			end

			连抽列表[id][#连抽列表[id] + 1] = 奖励名称[id]

			if 连抽次数 == #连抽列表[id] then
				local mc = nil

				for i = 1, #连抽列表[id] do
					if i == 1 then
						mc = 连抽列表[id][i]
					else
						mc = mc .. "、" .. 连抽列表[id][i]
					end
				end

				广播消息({
					频道 = "xt",
					内容 = format("#S(幸运抽奖)#R/%s#Y在抽奖使者处进行#R" .. 连抽次数 .. "连抽#Y获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, mc)
				})

				连抽列表[id] = {}
			end
		else
			广播消息({
				频道 = "xt",
				内容 = format("#S(幸运抽奖)#R/%s#Y在抽奖使者处获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
			})
		end
	elseif 名称 == "100级无级别武器" then
		礼包奖励类:取随机武器(id, 100, "无级别限制")
		广播消息({
			频道 = "xt",
			内容 = format("#S(幸运抽奖)#R/%s#Y在抽奖使者处获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, "100级无级别武器")
		})
	elseif 名称 == "110级无级别武器" then
		礼包奖励类:取随机武器(id, 110, "无级别限制")
		广播消息({
			频道 = "xt",
			内容 = format("#S(幸运抽奖)#R/%s#Y在抽奖使者处获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, "110级无级别武器")
		})
	elseif 名称 == "100级无级别装备" then
		礼包奖励类:取随机装备(id, 100, "无级别限制")
		广播消息({
			频道 = "xt",
			内容 = format("#S(幸运抽奖)#R/%s#Y在抽奖使者处获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, "100级无级别装备")
		})
	elseif 名称 == "110级无级别装备" then
		礼包奖励类:取随机装备(id, 110, "无级别限制")
		广播消息({
			频道 = "xt",
			内容 = format("#S(幸运抽奖)#R/%s#Y在抽奖使者处获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, "110级无级别装备")
		})
	elseif 名称 == "新仙玉锦囊" then
		奖励名称[id] = 快捷给道具(id, "新仙玉锦囊", 1)

		广播消息({
			频道 = "xt",
			内容 = format("#S(幸运抽奖)#R/%s#Y在抽奖使者处获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 名称 == "100级装备礼包" then
		奖励名称[id] = "100级装备礼包"

		玩家数据[id].道具:给予道具(id, 奖励名称[id], 1)
		常规提示(id, "#Y/你获得了" .. 奖励名称[id])
		广播消息({
			频道 = "xt",
			内容 = format("#S(幸运抽奖)#R/%s#Y在抽奖使者处获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 名称 == "金砖" then
		玩家数据[id].角色:添加银子(300000, "神秘宝箱", 1)
		广播消息({
			频道 = "xt",
			内容 = format("#S(幸运抽奖)#R/%s#Y在抽奖使者处获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, "30万银子")
		})
	elseif 名称 == "仙丹" then
		玩家数据[id].角色:添加经验(5000000, "神秘宝箱", 1)
		广播消息({
			频道 = "xt",
			内容 = format("#S(幸运抽奖)#R/%s#Y在抽奖使者处获得了#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, "500万经验")
		})
	end

	神秘宝箱[id] = nil
end

function 道具处理类:卸下bb装备(连接id, id, 数据)
	local 角色 = 数据.角色
	local 类型 = 数据.类型
	local 道具 = 数据.道具
	local bb = 数据.编号
	local 道具格子 = 玩家数据[id].角色:取道具格子()

	if 道具格子 == 0 then
		常规提示(id, "您的道具栏物品已经满啦")

		return
	else
		local 临时id = self:取新编号()
		self.数据[临时id] = 玩家数据[id].召唤兽.数据[bb].装备[道具]

		玩家数据[id].召唤兽:卸下装备(玩家数据[id].召唤兽.数据[bb].装备[道具], 道具, bb, "不刷新")

		玩家数据[id].角色.数据.道具[道具格子] = 临时id
		玩家数据[id].召唤兽.数据[bb].装备[道具] = nil

		玩家数据[id].召唤兽:刷新信息(bb)
		刷新道具行囊单格(id, "道具", 道具格子, 临时id)
		发送数据(连接id, 20, 玩家数据[id].召唤兽:取存档数据(bb))
		发送数据(连接id, 28)
	end
end

function 道具处理类:佩戴bb装备(连接id, id, 数据)
	local 角色 = 数据.角色
	local 类型 = 数据.类型
	local 道具 = 数据.道具
	local 道具id = 玩家数据[id].角色.数据[类型][道具]
	local bb = 数据.编号

	if self.数据[道具id].分类 > 6 and self.数据[道具id].灵饰 ~= true and self:召唤兽可装备(self.数据[道具id], self.数据[道具id].分类 - 6, 玩家数据[id].召唤兽.数据[bb].等级, id) then
		local 装备格子 = self.数据[道具id].分类 - 6

		if 通灵装备1[self.数据[道具id].名称] ~= nil then
			装备格子 = 4

			if self.数据[道具id].次数 == nil then
				self.数据[道具id].次数 = 2
			end

			if self.数据[道具id].次数 ~= nil and self.数据[道具id].次数 <= 0 then
				常规提示(id, "#Y您的#R" .. self.数据[道具id].名称 .. "#Y可佩戴次数不足、佩戴失败！")

				return
			end
		end

		if 玩家数据[id].召唤兽.数据[bb].装备[装备格子] ~= nil then
			local 临时道具 = 玩家数据[id].召唤兽.数据[bb].装备[装备格子]

			玩家数据[id].召唤兽:卸下装备(玩家数据[id].召唤兽.数据[bb].装备[装备格子], 装备格子, bb, "不刷新")

			玩家数据[id].召唤兽.数据[bb].装备[装备格子] = nil

			玩家数据[id].召唤兽:穿戴装备(self.数据[道具id], 装备格子, bb)

			self.数据[道具id] = 临时道具
			玩家数据[id].角色.数据[类型][道具] = 道具id
		else
			玩家数据[id].召唤兽:穿戴装备(self.数据[道具id], 装备格子, bb)

			self.数据[道具id] = nil
			玩家数据[id].角色.数据[类型][道具] = nil
		end

		刷新道具行囊单格(id, 类型, 道具, 玩家数据[id].角色.数据[类型][道具])
		发送数据(连接id, 20, 玩家数据[id].召唤兽:取存档数据(bb))
		发送数据(连接id, 28)
	end
end

function 道具处理类:穿戴饰品(连接id, id, 数据)
	local 角色 = 数据.角色
	local 类型 = 数据.类型
	local 道具 = 数据.道具
	local 道具id = 玩家数据[id].角色.数据[类型][道具]
	local 坐骑 = 数据.编号

	if self.数据[道具id].总类 == "坐骑饰品" and self.数据[道具id].子类 == 玩家数据[id].角色.数据.坐骑列表[坐骑].模型 then
		local 物品 = 取物品数据(self.数据[道具id].名称)

		if 玩家数据[id].角色.数据.坐骑列表[坐骑].饰品 == nil then
			玩家数据[id].角色.数据.坐骑列表[坐骑].饰品 = self.数据[道具id].名称
			玩家数据[id].角色.数据.坐骑列表[坐骑].饰品物件 = self.数据[道具id]
			玩家数据[id].角色.数据.坐骑列表[坐骑].饰品id = 玩家数据[id].角色.数据[类型][道具]
			玩家数据[id].角色.数据[类型][道具] = nil
		else
			local 道具id1 = 玩家数据[id].角色.数据.坐骑列表[坐骑].饰品id
			玩家数据[id].角色.数据.坐骑列表[坐骑].饰品 = self.数据[道具id].名称
			玩家数据[id].角色.数据.坐骑列表[坐骑].饰品物件 = self.数据[道具id]
			玩家数据[id].角色.数据.坐骑列表[坐骑].饰品id = 玩家数据[id].角色.数据[类型][道具]
			玩家数据[id].角色.数据[类型][道具] = nil
			玩家数据[id].角色.数据[类型][道具] = 道具id1
		end

		刷新道具行囊单格(id, 类型, 道具, 玩家数据[id].角色.数据[类型][道具])
		发送数据(玩家数据[id].连接id, 60, 玩家数据[id].角色.数据.坐骑)
		发送数据(玩家数据[id].连接id, 61, 玩家数据[id].角色.数据.坐骑列表)
		地图处理类:更新坐骑(id, 玩家数据[id].角色.数据.坐骑)
		地图处理类:更新坐骑(id, 玩家数据[id].角色.数据.坐骑列表)
		发送数据(连接id, 3531)
	else
		常规提示(id, "#Y/该饰品不适合该坐骑哦")
	end
end

function 道具处理类:卸下饰品(连接id, id, 数据)
	local 道具格子 = 玩家数据[id].角色:取道具格子()
	local 坐骑 = 数据.编号

	if 道具格子 == 0 then
		常规提示(id, "您的道具栏物品已经满啦")

		return
	else
		local 临时id = self:取新编号()
		self.数据[临时id] = 玩家数据[id].角色.数据.坐骑列表[坐骑].饰品物件
		玩家数据[id].角色.数据.道具[道具格子] = 临时id
		玩家数据[id].角色.数据.坐骑列表[坐骑].饰品 = nil
		玩家数据[id].角色.数据.坐骑列表[坐骑].饰品物件 = nil

		发送数据(玩家数据[id].连接id, 60, 玩家数据[id].角色.数据.坐骑)
		发送数据(玩家数据[id].连接id, 61, 玩家数据[id].角色.数据.坐骑列表)
		地图处理类:更新坐骑(id, 玩家数据[id].角色.数据.坐骑)
		地图处理类:更新坐骑(id, 玩家数据[id].角色.数据.坐骑列表)
		发送数据(连接id, 3531)
		刷新道具行囊单格(id, 类型, 道具格子, 玩家数据[id].角色.数据.道具[道具格子])
	end
end

function 道具处理类:召唤兽可装备(i1, i2, 等级, id)
	if i1 ~= nil and i1.分类 - 6 == i2 then
		if 通灵装备1[i1.名称] ~= nil then
			i1.级别限制 = 0

			return true
		elseif (i1.耐久 or 500) <= 0 then
			常规提示(id, "#Y/佩戴失败、装备耐久度不足！")

			return false
		end

		local 特效判断 = {}

		if i1.特效 ~= nil then
			特效判断 = 列表模式转换(i1.特效)
		end

		if i1.级别限制 == 0 or 特效判断.无级别限制 ~= nil or i1.级别限制 <= 等级 or 吊游定制 then
			return true
		elseif 特效判断.超级简易 ~= nil and i1.级别限制 <= 等级 + 超级简易等级数 then
			return true
		elseif 特效判断.简易 ~= nil and i1.级别限制 <= 等级 + 简易等级数 then
			return true
		elseif 等级 < i1.级别限制 then
			常规提示(id, "#Y/你的召唤兽等级不足哦")
		end
	end

	return false
end

function 道具处理类:取随机装备(id, 等级, 返回)
	local 临时格子, 行囊类型 = nil

	if 获取道具模式[id] == nil then
		行囊类型 = "装备"
		临时格子 = 玩家数据[id].角色:取超级行囊格子(行囊类型)
	else
		临时格子 = 玩家数据[id].角色:取道具格子()
	end

	if 临时格子 == 0 then
		常规提示(id, "#Y/你身上的空间不够，无法获得装备")

		return
	end

	local 临时等级 = 等级
	local 临时参数 = 取随机数(1, #书铁范围)
	local 临时序列 = 临时参数

	if 临时序列 == 25 then
		临时序列 = 23
	elseif 临时序列 == 24 then
		临时序列 = 22
	elseif 临时序列 == 23 or 临时序列 == 22 then
		临时序列 = 21
	elseif 临时序列 == 21 then
		临时序列 = 20
	elseif 临时序列 == 20 or 临时序列 == 19 then
		临时序列 = 19
	end

	local 临时类型 = 玩家数据[id].装备.打造物品[临时序列][临时等级 + 1]

	if type(临时类型) == "table" then
		if 临时参数 == 23 then
			临时类型 = 临时类型[2]
		elseif 临时参数 == 22 then
			临时类型 = 临时类型[1]
		elseif 临时参数 == 20 then
			临时类型 = 临时类型[2]
		elseif 临时参数 == 19 then
			临时类型 = 临时类型[1]
		else
			临时类型 = 临时类型[取随机数(1, 2)]
		end
	end

	local 道具 = 物品类()

	道具:置对象(临时类型)

	道具.级别限制 = 临时等级
	local dz = 玩家数据[id].装备:打造公式(id, 临时等级 * 10, 临时序列)

	if dz[1] ~= nil then
		道具.命中 = dz[1]
	end

	if dz[2] ~= nil then
		道具.伤害 = dz[2]
	end

	if dz[3] ~= nil then
		道具.防御 = dz[3]
	end

	if dz[4] ~= nil then
		道具.魔法 = dz[4]
	end

	if dz[5] ~= nil then
		道具.灵力 = dz[5]
	end

	if dz[6] ~= nil then
		道具.气血 = dz[6]
	end

	if dz[7] ~= nil then
		道具.敏捷 = dz[7]
	end

	if dz[8] ~= nil then
		道具.体质 = dz[8]
	end

	if dz[9] ~= nil then
		道具.力量 = dz[9]
	end

	if dz[10] ~= nil then
		道具.耐力 = dz[10]
	end

	if dz[11] ~= nil then
		道具.魔力 = dz[11]
	end

	if dz[12] ~= nil then
		道具 = 添加装备特效(道具)
	end

	if dz[13] ~= nil then
		道具.特技 = 通用特技[取随机数(1, #通用特技)]
	end

	local 道具id = self:取新编号()
	self.数据[道具id] = 道具
	self.数据[道具id].级别限制 = 等级 * 10
	self.数据[道具id].鉴定 = false
	self.数据[道具id].超级五行 = 取超级五行处理(self.数据[道具id].级别限制, 5)
	self.数据[道具id].五行 = self.数据[道具id].超级五行.类型 or 取五行()
	self.数据[道具id].耐久 = 500
	self.数据[道具id].开运孔数 = {
		上限 = 0,
		当前 = 0
	}

	if 等级 <= 40 then
		self.数据[道具id].开运孔数 = {
			上限 = 2,
			当前 = 0
		}
	elseif 等级 > 40 and 等级 <= 80 then
		self.数据[道具id].开运孔数 = {
			上限 = 3,
			当前 = 0
		}
	elseif 等级 > 80 and 等级 <= 120 then
		self.数据[道具id].开运孔数 = {
			上限 = 4,
			当前 = 0
		}
	elseif 等级 > 120 and 等级 <= 160 then
		self.数据[道具id].开运孔数 = {
			上限 = 5,
			当前 = 0
		}
	elseif 等级 > 160 and 等级 <= 180 then
		self.数据[道具id].开运孔数 = {
			上限 = 6,
			当前 = 0
		}
	end

	self.数据[道具id].符石 = {}
	self.数据[道具id].星位 = {}
	self.数据[道具id].符石组合 = {
		符石组合 = {},
		门派条件 = {},
		部位条件 = {},
		效果说明 = {}
	}
	self.数据[道具id].熔炼效果 = {}

	if 获取道具模式[id] == nil then
		玩家数据[id].角色.数据.超级行囊[行囊类型][临时格子] = 道具id

		刷新超级行囊单格(id, 超级行囊类型列表1[行囊类型], 临时格子, 道具id)
	else
		玩家数据[id].角色.数据.道具[临时格子] = 道具id

		刷新道具行囊单格(id, "道具", 临时格子, 道具id)
	end

	if self.数据[道具id].超级五行.类型 ~= nil then
		发送数据(玩家数据[id].连接id, 38, {
			内容 = "你得到了一件#R/超级五行#W装备"
		})
	end

	发送数据(玩家数据[id].连接id, 38, {
		内容 = "你得到了#R/" .. self.数据[道具id].名称
	})

	if 返回 then
		return self.数据[道具id].名称
	end
end

function 道具处理类:取随机装备1(id, 等级, 名称)
	local 临时格子, 行囊类型 = nil

	if 获取道具模式[id] == nil then
		行囊类型 = "装备"
		临时格子 = 玩家数据[id].角色:取超级行囊格子(行囊类型)
	else
		临时格子 = 玩家数据[id].角色:取道具格子()
	end

	if 临时格子 == 0 then
		return
	end

	local 道具 = 物品类()

	道具:置对象(名称)

	道具.级别限制 = 等级 * 10
	local 道具id = self:取新编号()
	self.数据[道具id] = 道具
	self.数据[道具id].级别限制 = 等级 * 10
	self.数据[道具id].鉴定 = false
	self.数据[道具id].超级五行 = 取超级五行处理(self.数据[道具id].级别限制, 5)
	self.数据[道具id].五行 = self.数据[道具id].超级五行.类型 or 取五行()
	self.数据[道具id].开运孔数 = {
		上限 = 0,
		当前 = 0
	}

	if 等级 <= 40 then
		self.数据[道具id].开运孔数 = {
			上限 = 2,
			当前 = 0
		}
	elseif 等级 > 40 and 等级 <= 80 then
		self.数据[道具id].开运孔数 = {
			上限 = 3,
			当前 = 0
		}
	elseif 等级 > 40 and 等级 <= 80 then
		self.数据[道具id].开运孔数 = {
			上限 = 3,
			当前 = 0
		}
	elseif 等级 > 80 and 等级 <= 120 then
		self.数据[道具id].开运孔数 = {
			上限 = 4,
			当前 = 0
		}
	elseif 等级 > 120 and 等级 <= 160 then
		self.数据[道具id].开运孔数 = {
			上限 = 5,
			当前 = 0
		}
	elseif 等级 > 160 and 等级 <= 180 then
		self.数据[道具id].开运孔数 = {
			上限 = 6,
			当前 = 0
		}
	end

	self.数据[道具id].符石 = {}
	self.数据[道具id].星位 = {}
	self.数据[道具id].符石组合 = {
		符石组合 = {},
		门派条件 = {},
		部位条件 = {},
		效果说明 = {}
	}
	self.数据[道具id].熔炼效果 = {}

	if 获取道具模式[id] == nil then
		玩家数据[id].角色.数据.超级行囊[行囊类型][临时格子] = 道具id
	else
		玩家数据[id].角色.数据.道具[临时格子] = 道具id
	end
end

取指南书种类 = function()
	local aa = ygsj(7)

	if aa == 1 then
		return 18 + ygsj(2)
	elseif aa == 2 then
		return 21
	elseif aa == 3 or aa > 6 then
		return ygsj(18)
	elseif aa == 4 then
		return 21 + ygsj(2)
	else
		return 19 + aa
	end
end

function 道具处理类:给予书铁(id, 等级, 类型, 数量)
	数量 = 数量 or 1

	if 类型 == nil then
		self.临时随机 = ygsj()

		if self.临时随机 <= 50 then
			self.书铁名称 = "制造指南书"
		else
			self.书铁名称 = "百炼精铁"
		end

		local 书铁等级 = 取随机数(等级[1] * 10, 等级[2] * 10)
		local 书铁种类 = 取指南书种类()
		书铁等级 = math.floor(书铁等级 / 10) * 10

		self:给予道具(id, self.书铁名称, 书铁等级, 书铁种类, 数量)

		return {
			self.书铁名称,
			书铁等级,
			书铁种类
		}
	elseif 类型 == "指南书" then
		self.书铁名称 = "制造指南书"
		local 书铁等级 = 取随机数(等级[1] * 10, 等级[2] * 10)
		local 书铁种类 = 取指南书种类()
		书铁等级 = math.floor(书铁等级 / 10) * 10

		self:给予道具(id, self.书铁名称, 书铁等级, 书铁种类, 数量)

		return {
			self.书铁名称,
			书铁等级,
			书铁种类
		}
	elseif 类型 == "精铁" then
		self.书铁名称 = "百炼精铁"
		local 书铁等级 = 取随机数(等级[1] * 10, 等级[2] * 10)
		local 书铁种类 = 取指南书种类()
		书铁等级 = math.floor(书铁等级 / 10) * 10

		self:给予道具(id, self.书铁名称, 书铁等级, 书铁种类, 数量)

		return {
			self.书铁名称,
			书铁等级,
			书铁种类
		}
	end
end

function 道具处理类:取武器子类(子类)
	local n = {
		"枪矛",
		"斧钺",
		"剑",
		"双短剑",
		"飘带",
		"爪刺",
		"扇",
		"魔棒",
		"锤",
		"鞭",
		"环圈",
		"刀",
		"法杖",
		"弓弩",
		"宝珠",
		"巨剑",
		"伞",
		"灯笼",
		"头盔",
		"发钗",
		"项链",
		"女衣",
		"男衣",
		"腰带",
		"鞋子"
	}

	return n[子类]
end

function 道具处理类:取武器类型(子类)
	local n = {
		"枪矛",
		"斧钺",
		"剑",
		"双短剑",
		"飘带",
		"爪刺",
		"扇",
		"魔棒",
		"锤",
		"鞭",
		"环圈",
		"刀",
		"法杖",
		"弓弩",
		"宝珠",
		"巨剑",
		"伞",
		"灯笼",
		"头盔",
		"发钗",
		"项链",
		"女衣",
		"男衣",
		"腰带",
		"鞋子"
	}

	for i = 1, #n do
		if n[i] == 子类 then
			return i
		end
	end
end

function 道具处理类:飞行符传送(连接id, id, 内容)
	local 传送序列 = 内容.序列

	if self:取飞行限制(id) == false then
		local 包裹类型 = 玩家数据[id].道具操作.类型
		local 道具格子 = 玩家数据[id].道具操作.编号
		local 道具id = 玩家数据[id].角色.数据[包裹类型][道具格子]

		地图处理类:跳转地图(id, self.飞行传送点[传送序列][1], self.飞行传送点[传送序列][2], self.飞行传送点[传送序列][3])
		self:删除道具(连接id, id, 包裹类型, 道具id, 道具格子, 删除数量)
	end
end

function 道具处理类:取加血道具(名称)
	local 临时名称 = {
		龙之心屑 = 18,
		熊胆 = 13,
		血色茶花 = 12,
		金创药 = 5,
		包子 = 9,
		千年保心丹 = 7,
		天不老 = 10,
		凤凰尾 = 16,
		翡翠豆腐 = 2,
		七叶莲 = 22,
		金香玉 = 8,
		紫石英 = 11,
		烤肉 = 3,
		臭豆腐 = 4,
		四叶花 = 20,
		烤鸭 = 0,
		天青地白 = 21,
		火凤之睛 = 19,
		小还丹 = 6,
		山药 = 24,
		六道轮回 = 15,
		人参 = 23,
		鹿茸 = 14,
		八角莲叶 = 1,
		硫磺草 = 17
	}

	if 临时名称[名称] ~= nil then
		return true
	end

	return false
end

function 道具处理类:取寿命道具(名称)
	local 临时名称 = {
		长寿面 = 2,
		豆斋果 = 1,
		桂花丸 = 0
	}

	if 临时名称[名称] ~= nil then
		return true
	end

	return false
end

function 道具处理类:取寿命道具1(名称, 道具id)
	local 品质 = self.数据[道具id].阶品
	local 数值 = 0
	local 中毒 = 0

	if 名称 == "桂花丸" then
		数值 = 品质 * 0.5
	elseif 名称 == "豆斋果" then
		数值 = 品质 * 3
		中毒 = 3
	elseif 名称 == "长寿面" then
		数值 = 品质 * 2 + 50
		中毒 = 3
	end

	return {
		数值 = qz(数值),
		中毒 = 中毒
	}
end

function 道具处理类:取加魔道具(名称)
	local 临时名称 = {
		曼陀罗花 = 1,
		血珊瑚 = 12,
		紫丹罗 = 17,
		佛跳墙 = 2,
		旋复花 = 19,
		十香返生丸 = 6,
		鬼切草 = 24,
		麝香 = 11,
		百色花 = 21,
		月星子 = 8,
		龙须草 = 20,
		丁香水 = 7,
		仙狐涎 = 9,
		地狱灵芝 = 10,
		白玉骨头 = 23,
		灵脂 = 25,
		餐风饮露 = 13,
		天龙水 = 15,
		翡翠豆腐 = 0,
		白露为霜 = 14,
		定神香 = 5,
		香叶 = 22,
		孔雀红 = 16,
		蛇蝎美人 = 3,
		佛手 = 18,
		风水混元丹 = 4
	}

	if 临时名称[名称] ~= nil then
		return true
	end

	return false
end

function 道具处理类:取加血道具1(名称, 道具id)
	local 品质 = self.数据[道具id].阶品
	local 数值 = 0

	if 名称 == "包子" then
		数值 = 100
	elseif 名称 == "烤鸭" then
		数值 = 品质 * 10 + 100
	elseif 名称 == "烤肉" then
		数值 = 品质 * 10
	elseif 名称 == "臭豆腐" then
		数值 = 品质 * 20 + 200
	elseif 名称 == "翡翠豆腐" then
		数值 = 品质 * 15 + 150
	elseif 名称 == "金创药" then
		数值 = 400
	elseif 名称 == "小还丹" then
		数值 = 品质 * 8 + 100
	elseif 名称 == "金香玉" then
		数值 = 品质 * 12 + 150
	elseif 名称 == "千年保心丹" then
		数值 = 品质 * 4 + 200
	elseif 名称 == "五龙丹" then
		数值 = 品质 * 3
	elseif 名称 == "佛光舍利子" then
		数值 = 300
	elseif 名称 == "九转回魂丹" then
		数值 = 品质 * 5 + 100
	elseif 名称 == "天不老" or 名称 == "紫石英" then
		数值 = 100
	elseif 名称 == "血色茶花" or 名称 == "鹿茸" then
		数值 = 150
	elseif 名称 == "六道轮回" or 名称 == "熊胆" then
		数值 = 200
	elseif 名称 == "凤凰尾" or 名称 == "硫磺草" then
		数值 = 250
	elseif 名称 == "龙之心屑" or 名称 == "火凤之睛" then
		数值 = 300
	elseif 名称 == "四叶花" then
		数值 = 40
	elseif 名称 == "天青地白" then
		数值 = 80
	elseif 名称 == "七叶莲" then
		数值 = 60
	elseif 名称 == "人参" then
		数值 = 80
	elseif 名称 == "山药" then
		数值 = 40
	elseif 名称 == "八角莲叶" then
		数值 = 60
	end

	return qz(数值)
end

function 道具处理类:取加伤道具1(名称, 道具id)
	local 品质 = self.数据[道具id].阶品
	local 数值 = 0

	if 名称 == "水黄莲" then
		数值 = 20
	elseif 名称 == "草果" then
		数值 = 10
	elseif 名称 == "九香虫" then
		数值 = 15
	elseif 名称 == "人参" then
		数值 = 20
	elseif 名称 == "山药" then
		数值 = 10
	elseif 名称 == "八角莲叶" then
		数值 = 15
	elseif 名称 == "小还丹" then
		数值 = 品质 + 80
	elseif 名称 == "千年保心丹" then
		数值 = 品质 * 4 + 100
	elseif 名称 == "九转回魂丹" then
		数值 = 品质 * 5 + 100
	elseif 名称 == "佛光舍利子" then
		数值 = 品质 * 3
	end

	return qz(数值)
end

function 道具处理类:取加魔道具1(名称, 道具id)
	local 品质 = self.数据[道具id].阶品
	local 数值 = 0

	if 名称 == "佛跳墙" or 名称 == "翡翠豆腐" then
		数值 = 品质 * 10 + 100
	elseif 名称 == "定神香" then
		数值 = 品质 * 5 + 50
	elseif 名称 == "风水混元丹" then
		数值 = 品质 * 3 + 50
	elseif 名称 == "蛇蝎美人" then
		数值 = 品质 * 5 + 100
	elseif 名称 == "十香返生丸" then
		数值 = 品质 * 3 + 50
	elseif 名称 == "女儿红" or 名称 == "虎骨酒" then
		数值 = 20
	elseif 名称 == "珍露酒" then
		数值 = 品质 * 0.4 + 10
	elseif 名称 == "梅花酒" then
		数值 = 品质 * 0.6
	elseif 名称 == "百味酒" then
		数值 = 品质 * 0.7
	elseif 名称 == "蛇胆酒" then
		数值 = 品质 * 1
	elseif 名称 == "醉生梦死" then
		数值 = 品质 * 1
	elseif 名称 == "丁香水" or 名称 == "月星子" then
		数值 = 75
	elseif 名称 == "仙狐涎" or 名称 == "地狱灵芝" or 名称 == "麝香" or 名称 == "血珊瑚" or 名称 == "餐风饮露" or 名称 == "白露为霜" then
		数值 = 100
	elseif 名称 == "天龙水" or 名称 == "孔雀红" then
		数值 = 150
	elseif 名称 == "紫丹罗" or 名称 == "佛手" or 名称 == "旋复花" then
		数值 = 20
	elseif 名称 == "龙须草" or 名称 == "百色花" or 名称 == "香叶" then
		数值 = 30
	elseif 名称 == "白玉骨头" or 名称 == "鬼切草" or 名称 == "灵脂" then
		数值 = 40
	elseif 名称 == "曼陀罗花" then
		数值 = 50
	end

	return qz(数值)
end

function 道具处理类:清空包裹(连接id, id)
	for n = 1, 100 do
		if 玩家数据[id].角色.数据.道具[n] ~= nil then
			self.数据[玩家数据[id].角色.数据.道具[n]] = nil
			玩家数据[id].角色.数据.道具[n] = nil
		end
	end

	道具刷新(id)
end

function 道具处理类:佩戴法宝(连接id, id, 类型, 编号)
	角色佩戴法宝(连接id, id, 玩家数据[id].角色.数据, 编号)
end

function 道具处理类:使用道具(连接id, id, 内容)
	local 包裹类型 = 内容.类型
	local 道具格子 = 内容.编号
	local 删除数量 = 1
	local 加血对象 = 0

	if 内容.窗口 == "召唤兽" then
		if 玩家数据[id].召唤兽.数据[内容.序列] == nil then
			常规提示(id, "该召唤兽不存在")

			return
		else
			加血对象 = 内容.序列
		end
	end

	if 包裹类型 ~= "道具" then
		if 包裹类型 == "法宝" then
			self:佩戴法宝(连接id, id, 包裹类型, 道具格子)

			return
		end

		常规提示(id, "只有道具栏的物品才可以使用")

		return
	elseif 道具格子 == nil then
		return
	end

	local 道具id = 玩家数据[id].角色.数据[包裹类型][道具格子]

	if 道具id == nil or self.数据[道具id] == nil then
		玩家数据[id].道具[道具格子] = nil

		道具刷新(id)

		return
	end

	local 名称 = self.数据[道具id].名称
	local 道具使用 = false

	if 名称 == "蒲扇" then
		if 玩家数据[id].队伍 ~= 0 then
			常规提示(id, "#Y必须单人才能使用该道具")

			return
		end

		local rwid = 玩家数据[id].角色:取任务(34482)

		if rwid ~= 0 then
			local 地图编号 = 玩家数据[id].角色.数据.地图数据.编号

			if 地图编号 == 34480 then
				local xx = 任务数据[rwid].x
				local yy = 任务数据[rwid].y
				local xx1 = math.floor(玩家数据[id].角色.数据.地图数据.x / 20)
				local yy1 = math.floor(玩家数据[id].角色.数据.地图数据.y / 20)

				if math.abs(xx - xx1) > 5 or math.abs(yy - yy1) > 5 then
					常规提示(id, "这里好像不是要打扫的地方……")

					return
				else
					if ygsj() > 50 then
						常规提示(id, "你是用了#P蒲扇#Y、将附近打扫得一干二净。")
						黑风山:完成打扫任务(id)
					else
						常规提示(id, "你是用了#P蒲扇#Y、但一团脏东西突然冒了出来……")
						战斗准备类:创建战斗(id, 134480.2, rwid)
					end

					return
				end
			else
				常规提示(id, "该物品无法在当前地图使用。")

				return
			end
		else
			常规提示(id, "不是使用该物品的场合。")

			return
		end
	elseif 名称 == "储灵袋" then
		if 玩家数据[id].角色.数据.法宝佩戴 ~= nil and not 判断是否为空表(玩家数据[id].角色.数据.法宝佩戴) then
			上交物品位置[id] = {}
			local 法宝佩戴数据 = 玩家数据[id].角色.数据.法宝佩戴
			local fbxx = {}

			for k, v in pairs(法宝佩戴数据) do
				fbxx[#fbxx + 1] = format("[%s]%s,级别:%s,灵气:%s", k, 玩家数据[id].道具.数据[v].名称, 玩家数据[id].道具.数据[v].分类, 玩家数据[id].道具.数据[v].魔法)
				上交物品位置[id][#上交物品位置[id] + 1] = {
					道具位置 = v,
					背包位置 = v,
					名称 = 玩家数据[id].道具.数据[v].名称,
					对话内容 = fbxx[#fbxx]
				}
			end

			玩家数据[id].最后操作 = "通用上交物品"
			上交物品位置[id].事件 = "储灵袋补充灵气"
			玩家数据[id].储灵袋位置 = 道具格子

			添加最后对话(id, "请选择要补充灵气的法宝：", fbxx)

			return
		else
			常规提示(id, "使用失败、您当前未佩戴法宝")

			return
		end
	elseif self:取加血道具(名称) then
		if 加血对象 == 0 and 玩家数据[id].角色.数据.气血上限 <= 玩家数据[id].角色.数据.气血 and 玩家数据[id].角色.数据.最大气血 <= 玩家数据[id].角色.数据.气血上限 then
			常规提示(id, "您的气血已满，无法使用该物品")

			return
		elseif 加血对象 ~= 0 and 玩家数据[id].召唤兽.数据[加血对象].最大气血 <= 玩家数据[id].召唤兽.数据[加血对象].气血 then
			常规提示(id, "您的这只召唤兽气血已满，无法使用该物品")

			return
		end

		道具使用 = true
		local 加血数值 = self:取加血道具1(名称, 道具id)
		local 加伤数值 = self:取加伤道具1(名称, 道具id)
		local 加魔数值 = self:取加魔道具1(名称, 道具id)

		if 名称 == "翡翠豆腐" then
			self:加血处理(连接id, id, 加血数值, 加血对象)
			self:加魔处理(连接id, id, 加魔数值, 加血对象)
		elseif 名称 == "草果" or 名称 == "九香虫" or 名称 == "水黄莲" then
			self:加伤势处理(连接id, id, 加伤数值, 加血对象)
		elseif 名称 == "小还丹" or 名称 == "千年保心丹" or 名称 == "九转回魂丹" or 名称 == "佛光舍利子" or 名称 == "山药" or 名称 == "八角莲叶" or 名称 == "人参" or 名称 == "草果" or 名称 == "九香虫" or 名称 == "水黄莲" then
			self:加伤势处理(连接id, id, 加伤数值, 加血对象)
			self:加血处理(连接id, id, 加血数值, 加血对象)
		else
			self:加血处理(连接id, id, 加血数值, 加血对象)
		end
	elseif self:取加魔道具(名称) then
		if 加血对象 == 0 and 玩家数据[id].角色.数据.最大魔法 <= 玩家数据[id].角色.数据.魔法 then
			常规提示(id, "您的魔法已满，无法使用该物品")

			return
		elseif 加血对象 ~= 0 and 玩家数据[id].召唤兽.数据[加血对象].最大魔法 <= 玩家数据[id].召唤兽.数据[加血对象].魔法 then
			常规提示(id, "您的这只召唤兽魔法已满，无法使用该物品")

			return
		end

		道具使用 = true
		local 加血数值 = self:取加血道具1(名称, 道具id)
		local 加魔数值 = self:取加魔道具1(名称, 道具id)

		if 名称 == "翡翠豆腐" then
			self:加血处理(连接id, id, 加血数值, 加血对象)
			self:加魔处理(连接id, id, 加魔数值, 加血对象)
		else
			self:加魔处理(连接id, id, 加魔数值, 加血对象)
		end
	elseif self:取寿命道具(名称) then
		if 加血对象 == 0 then
			常规提示(id, "该物品只能对召唤兽使用")

			return
		elseif 玩家数据[id].召唤兽.数据[加血对象].神兽 then
			常规提示(id, "神兽无法使用此物品")

			return
		else
			local 加血数值 = self:取寿命道具1(名称, 道具id)

			玩家数据[id].召唤兽:加寿命处理(加血对象, 加血数值.数值, 加血数值.中毒, 连接id, id)

			道具使用 = true
		end
	elseif 名称 == "钟灵石" or 宝石列表1[名称] ~= nil then
		self:自动合成宝石(id, 名称, 道具id, 包裹类型, 内容.编号, 内容.SHIFT)

		return
	elseif 名称 == "鬼谷子" then
		if 玩家数据[id].角色.数据.阵法[self.数据[道具id].子类] == nil then
			玩家数据[id].角色.数据.阵法[self.数据[道具id].子类] = 1

			常规提示(id, "恭喜你学会了如何使用#R/" .. self.数据[道具id].子类)

			道具使用 = true
		else
			常规提示(id, "你已经学过如何使用这个阵型了，请勿重复学习")

			return
		end
	elseif self.数据[道具id].总类 == 11 and self.数据[道具id].分类 == 2 then
		发送数据(玩家数据[id].连接id, 3529, {
			地图 = self.数据[道具id].地图,
			xy = self.数据[道具id].xy
		})

		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id
		}
		玩家数据[id].最后操作 = "合成旗"

		return
	elseif 名称 == "摄妖香" then
		if 玩家数据[id].角色:取任务(9) ~= 0 then
			玩家数据[id].角色:取消任务(玩家数据[id].角色:取任务(9))
		end

		任务处理类:添加摄妖香(id)
		常规提示(id, "#Y/你使用了摄妖香")

		道具使用 = true
	elseif 名称 == "传音纸鹤" then
		玩家数据[id].角色.数据.传音纸鹤 = 玩家数据[id].角色.数据.传音纸鹤 + 1

		常规提示(id, "#Y/你增加了一次纸鹤发言次数。")

		道具使用 = true
	elseif 名称 == "2倍经验丹" or 名称 == "一倍经验丹" then
		任务处理类:添加一倍经验(id)
		玩家数据[id].角色:刷新任务跟踪()
		常规提示(id, "#Y/你使用了2倍经验丹")

		道具使用 = true
	elseif 名称 == "3倍经验丹" or 名称 == "双倍经验丹" then
		if 玩家数据[id].角色:取任务(7755) ~= 0 then
			local rwid = 玩家数据[id].角色:取任务(7755)
			任务数据[rwid].结束 = 任务数据[rwid].结束 + 经验丹时间
		else
			任务处理类:添加双倍经验(id)
		end

		玩家数据[id].角色:刷新任务跟踪()
		常规提示(id, "#Y/你使用了3倍经验丹")

		道具使用 = true
	elseif 名称 == "10倍经验丹" or 名称 == "十倍经验丹" then
		if 玩家数据[id].角色:取任务(7757) ~= 0 then
			local rwid = 玩家数据[id].角色:取任务(7757)
			任务数据[rwid].结束 = 任务数据[rwid].结束 + 经验丹时间
		else
			任务处理类:添加十倍经验(id)
		end

		玩家数据[id].角色:刷新任务跟踪()
		常规提示(id, "#Y/你使用了10倍经验丹")

		道具使用 = true
	elseif 名称 == "洞冥草" then
		if 玩家数据[id].角色:取任务(9) ~= 0 then
			玩家数据[id].角色:取消任务(玩家数据[id].角色:取任务(9))
			常规提示(id, "#Y/你解除了摄妖香的效果")

			道具使用 = true
		end
	elseif 名称 == "三界悬赏令" then
		if 玩家数据[id].角色:取任务(209) ~= 0 then
			常规提示(id, "#Y/你已经有个悬赏任务在进行了")
		elseif 活动次数查询(id, "三界悬赏令", "单人") == true then
			任务处理类:添加三界悬赏任务(id)
			常规提示(id, "#Y/你获得了三界悬赏任务")

			道具使用 = true
		else
			return
		end
	elseif 名称 == "贼王的线索" then
		if 玩家数据[id].角色:取任务(350) ~= 0 then
			常规提示(id, "#Y/你已经有个贼王任务在进行了")
		else
			任务处理类:添加贼王的线索任务(id)
			常规提示(id, "#Y/你获得了贼王的线索任务")

			道具使用 = true
		end
	elseif 名称 == "摇钱树苗" then
		if 玩家数据[id].角色:取任务(22) ~= 0 then
			常规提示(id, "#Y/你之前已经种下一棵摇钱树苗了")
		elseif 地图处理类.遇怪地图[玩家数据[id].角色.数据.地图数据.编号] == nil then
			常规提示(id, "#Y/本场景无法种植树苗")
		else
			local x = 玩家数据[id].角色.数据.地图数据.x
			local y = 玩家数据[id].角色.数据.地图数据.y
			local 通过 = true

			for n, v in pairs(任务数据) do
				if 任务数据[n].类型 == 22 and 取两点距离({
					x = 任务数据[n].x,
					y = 任务数据[n].y
				}, {
					x = x,
					y = y
				}) <= 200 then
					通过 = false
				end
			end

			if 通过 == false then
				常规提示(id, "#Y/这个区域已经有一颗摇钱树了，请换个地方再试试")
			else
				任务处理类:添加摇钱树任务(id)
				常规提示(id, "#Y/你种下了一颗摇钱树")

				道具使用 = true
			end
		end
	elseif 名称 == "仙玉锦囊" then
		常规提示(id, "#Y/暂时不可以用联系管理员")
	elseif 名称 == "新仙玉锦囊" then
		添加仙玉(100, 玩家数据[id].账号, id, "使用仙玉锦囊")

		self.数据[道具id].可叠加 = true
		道具使用 = true
	elseif 名称 == "特赦令牌" then
		快捷给道具(id, "高级藏宝图", 1, nil, nil, 1)

		self.数据[道具id].可叠加 = true
		道具使用 = true
	elseif 名称 == "秘制红罗羹" then
		local 罗羹量 = self.数据[道具id].气血

		if 罗羹量 == nil then
			罗羹量 = 1000000
		end

		if 玩家数据[id].角色:取任务(10) ~= 0 then
			local 任务id = 玩家数据[id].角色:取任务(10)
			任务数据[任务id].气血 = 任务数据[任务id].气血 + 罗羹量

			常规提示(id, "#Y/你使用了秘制红罗羹")

			道具使用 = true

			玩家数据[id].角色:刷新任务跟踪()
		else
			任务处理类:添加罗羹(id, 罗羹量, 0)
			常规提示(id, "#Y/你使用了秘制红罗羹")

			道具使用 = true
		end
	elseif 名称 == "秘制绿罗羹" then
		local 罗羹量 = self.数据[道具id].魔法

		if 罗羹量 == nil then
			罗羹量 = 500000
		end

		if 玩家数据[id].角色:取任务(10) ~= 0 then
			local 任务id = 玩家数据[id].角色:取任务(10)
			任务数据[任务id].魔法 = 任务数据[任务id].魔法 + 罗羹量

			常规提示(id, "#Y/你使用了秘制绿罗羹")

			道具使用 = true

			玩家数据[id].角色:刷新任务跟踪()
		else
			任务处理类:添加罗羹(id, 0, 罗羹量)
			常规提示(id, "#Y/你使用了秘制绿罗羹")

			道具使用 = true
		end
	elseif 名称 == "白色导标旗" or 名称 == "黄色导标旗" or 名称 == "蓝色导标旗" or 名称 == "绿色导标旗" or 名称 == "红色导标旗" then
		if self.数据[道具id].地图 == nil then
			local 地图 = 玩家数据[id].角色.数据.地图数据.编号

			if 管理账号列表[玩家数据[id].账号] == nil and 取正常地图(地图) == false then
				常规提示(id, "目前所在地图无法定标！")

				return
			end

			self.数据[道具id].地图 = 玩家数据[id].角色.数据.地图数据.编号
			self.数据[道具id].x = math.floor(玩家数据[id].角色.数据.地图数据.x / 20)
			self.数据[道具id].y = math.floor(玩家数据[id].角色.数据.地图数据.y / 20)
			self.数据[道具id].次数 = 99

			刷新道具行囊单格(id, 内容.类型, 内容.编号, 道具id)
			常规提示(id, "定标成功！")

			return
		else
			if self:取飞行限制(id) == false then
				地图处理类:跳转地图(id, self.数据[道具id].地图, self.数据[道具id].x, self.数据[道具id].y)

				self.数据[道具id].次数 = self.数据[道具id].次数 - 1

				if self.数据[道具id].次数 <= 0 then
					self:删除道具(玩家数据[id].连接id, id, 包裹类型, 道具id, 内容.编号, 1)
				else
					刷新道具行囊单格(id, 内容.类型, 内容.编号, 道具id)
				end
			end

			return
		end
	elseif 名称 == "飞行符" then
		if self:取飞行限制(id) == false then
			玩家数据[id].道具操作 = {
				类型 = 包裹类型,
				编号 = 内容.编号,
				id = 道具id
			}
			玩家数据[id].最后操作 = "飞行符"

			发送数据(连接id, 13)

			return
		end
	elseif 名称 == "陨铁" then
		玩家数据[id].最后操作 = "幻化装备"

		if 玩家数据[id].角色.数据.道具行囊打开.道具 ~= nil then
			发送数据(连接id, 136, {
				道具 = 1
			})
		else
			发送数据(连接id, 136, 玩家数据[id].道具:索要道具1(id))
		end

		return
	elseif 名称 == "吊游攻略" then
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "刻晴",
			模型 = "龙太子",
			对话 = format("有什么需要帮助吗?"),
			选项 = {
				"我要怎么玩游戏?",
				"仙玉,点卡,银两如何获取?",
				"有什么玩法活动可以查看?",
				"游戏助战如何使用?",
				"单开或者多开能玩吗?"
			}
		})

		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id
		}
		玩家数据[id].最后操作 = "吊游攻略"
	elseif 名称 == "神兵图鉴" or 名称 == "灵宝图鉴" then
		local 是否专用 = false

		if ygsj() <= 服务端参数.专用概率 then
			是否专用 = true
		end

		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id),
			专用 = 是否专用
		}

		发送数据(连接id, 64, 玩家数据[id].道具操作)

		return
	elseif 名称 == "分解符" then
		local 是否分解 = true
		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id),
			分解 = 是否分解
		}

		发送数据(连接id, 64, 玩家数据[id].道具操作)

		return
	elseif 名称 == "属性转换符" then
		local 是否转换 = true
		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id),
			转换 = 是否转换
		}

		发送数据(连接id, 64, 玩家数据[id].道具操作)

		return
	elseif 名称 == "回收符" then
		local 是否回收 = true
		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id),
			回收 = 是否回收
		}

		发送数据(连接id, 64, 玩家数据[id].道具操作)

		return
	elseif 名称 == "吸附石" then
		local 是否吸附 = true
		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id),
			吸附 = 是否吸附
		}

		发送数据(连接id, 64, 玩家数据[id].道具操作)

		return
	elseif 名称 == "特效石" then
		local 是否特效 = true
		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id),
			特效 = 是否特效
		}

		发送数据(连接id, 64, 玩家数据[id].道具操作)

		return
	elseif 名称 == "特技石" then
		local 是否特技 = true
		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id),
			特技 = 是否特技
		}

		发送数据(连接id, 64, 玩家数据[id].道具操作)

		return
	elseif 名称 == "七彩石" then
		local 是否附加 = true
		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id),
			附加 = 是否附加
		}

		发送数据(连接id, 64, 玩家数据[id].道具操作)

		return
	elseif 名称 == "五行石" then
		local 是否五行 = true
		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id),
			五行 = 是否五行
		}

		发送数据(连接id, 64, 玩家数据[id].道具操作)

		return
	elseif 名称 == "灵饰洗练石" then
		local 是否洗练 = true
		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id),
			洗练 = 是否洗练
		}

		发送数据(连接id, 64, 玩家数据[id].道具操作)

		return
	elseif string.find(名称, "通灵重置丹") then
		local 是否护符 = true
		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id),
			护符 = 是否护符
		}

		发送数据(连接id, 64, 玩家数据[id].道具操作)

		return
	elseif 名称 == "召唤兽蛋" or 名称 == "源生之灵" then
		if #玩家数据[id].召唤兽.数据 < 玩家数据[id].角色.数据.召唤兽携带数量 then
			local by = false

			if 名称 == "源生之灵" then
				local 必定物理 = {
					神兽时光叽 = 1,
					神兽雪精灵 = 1,
					神兽小龙人 = 1
				}

				if self.数据[道具id].特效 == nil or self.数据[道具id].特效 == "" then
					self.数据[道具id].特效 = "神兽雪精灵"
				end

				local mc = self.数据[道具id].特效
				local 物法 = nil

				if 必定物理[mc] == nil and ygsj() >= 50 then
					物法 = "法系"
				end

				玩家数据[id].召唤兽:添加召唤兽(self.数据[道具id].特效, true, false, true, 0, 物法, nil, nil, nil, nil)
				常规提示(id, "#Y/你获得了一只#R" .. mc)

				道具使用 = true
			else
				if self.数据[道具id].特效 == nil or self.数据[道具id].特效 == "" then
					self.数据[道具id].特效 = "泡泡"
				end

				local mc = self.数据[道具id].特效

				if ygsj() <= 5 then
					by = true
					mc = "变异" .. mc
				end

				玩家数据[id].召唤兽:添加召唤兽(self.数据[道具id].特效, true, by, false, 0, nil, nil, nil, nil, nil, self.数据[道具id].不可交易)
				常规提示(id, "#Y/你获得了一只#R" .. mc)

				道具使用 = true
			end
		else
			常规提示(id, "#Y/无法携带更多召唤兽。")

			return
		end
	elseif 名称 == "附魔宝珠" then
		发送数据(玩家数据[id].连接id, 3548, {
			宝珠数据 = 道具id,
			宝珠 = 道具格子
		})

		return
	elseif 名称 == "碎星锤" or 名称 == "超级碎星锤" then
		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id)
		}

		发送数据(连接id, 84.1, 玩家数据[id].道具操作)

		return
	elseif 名称 == "灵箓" then
		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id)
		}

		发送数据(连接id, 84.2, 玩家数据[id].道具操作)

		return
	elseif 名称 == "甲鱼" or 名称 == "草鱼" then
		玩家数据[id].角色.数据.钓鱼积分 = 玩家数据[id].角色.数据.钓鱼积分 + 10

		常规提示(id, "#Y获得钓鱼积分10点#72")

		道具使用 = true
	elseif 名称 == "娃娃鱼" then
		玩家数据[id].角色.数据.钓鱼积分 = 玩家数据[id].角色.数据.钓鱼积分 + 20

		常规提示(id, "#Y获得钓鱼积分20点#72")

		道具使用 = true
	elseif 名称 == "大闸蟹" then
		玩家数据[id].角色.数据.钓鱼积分 = 玩家数据[id].角色.数据.钓鱼积分 + 15

		常规提示(id, "#Y获得钓鱼积分15点#72")

		道具使用 = true
	elseif 名称 == "鱼竿" then
		if 玩家数据[id].队伍 ~= 0 and 玩家数据[id].队长 == false then
			常规提示(id, "#y/请联系队长使用")

			return
		end

		if 玩家数据[id].角色.数据.地图数据.编号 ~= 1092 then
			常规提示(id, "#y/请前往傲来国垂钓")

			return
		end

		if math.floor(玩家数据[id].角色.数据.地图数据.x / 20) < 117 or math.floor(玩家数据[id].角色.数据.地图数据.x / 20) > 166 or math.floor(玩家数据[id].角色.数据.地图数据.y / 20) < 141 or math.floor(玩家数据[id].角色.数据.地图数据.y / 20) > 144 then
			常规提示(id, "#y/这里不是钓鱼的位置，渔夫的边上垂钓")

			return
		end

		if 玩家数据[id].队伍 ~= 0 then
			local llheg = nil

			for n = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
				ll = 队伍数据[玩家数据[id].队伍].成员数据[n]
			end

			发送数据(玩家数据[ll].连接id, 143)
			发送数据(玩家数据[id].连接id, 143)

			return
		else
			发送数据(连接id, 143)

			return
		end
	elseif 定制装备礼包[名称] ~= nil then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 1 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色.数据.对话类型 = "自选定制装备"
		玩家数据[id].角色.数据.自选装备 = 定制装备礼包[名称]
		玩家数据[id].角色.数据.自选装备流程 = 0
		玩家数据[id].角色.数据.定制装备参数 = {}
		玩家数据[id].角色.数据.定制装备助战 = nil

		添加最后对话(id, "请选择" .. 玩家数据[id].角色.数据.自选装备 .. "特技：", 通用特技)

		return
	elseif 名称 == "神兽自选礼包" then
		玩家数据[id].角色.数据.对话类型 = "自选神兽"

		添加最后对话(id, "请选择神兽种类：", 神兽列表)

		return
	elseif 名称 == "15技能定制攻宠礼包" or 名称 == "15技能定制法宠礼包" or 名称 == "13技能定制攻宠礼包" or 名称 == "13技能定制法宠礼包" then
		玩家数据[id].角色.数据.自选宠物 = 名称 .. ""
		玩家数据[id].角色.数据.对话类型 = "自选定制礼包"

		添加最后对话(id, "请选择定制宠物造型：", 自选宠物列表)

		return
	elseif 名称 == "10技能胚子召唤兽礼包" or 名称 == "12技能胚子召唤兽礼包" or 名称 == "14技能胚子召唤兽礼包" or 名称 == "16技能胚子召唤兽礼包" or 名称 == "18技能胚子召唤兽礼包" or 名称 == "20技能胚子召唤兽礼包" then
		local sl = 分割文本(名称, "技能胚子")
		local 技能数量 = tonumber(sl[1])
		local 胚子模型列表 = {
			"狂豹人形",
			"毗舍童子",
			"芙蓉仙子",
			"黑白狂豹人形",
			"暗黑毗舍童子",
			"鬼将",
			"律法女娲"
		}

		if #玩家数据[id].召唤兽.数据 < 玩家数据[id].角色.数据.召唤兽携带数量 then
			local mx = 胚子模型列表[ygsj(#胚子模型列表)]

			玩家数据[id].召唤兽:添加召唤兽(mx, true, true, false, 0, nil, nil, nil, 取低级要诀(技能数量), nil, true, {
				胚子 = 1
			})
			常规提示(id, "#Y/你获得了一只#R" .. mx)

			道具使用 = true
		else
			常规提示(id, "#Y/无法携带更多召唤兽。")

			return
		end
	elseif 名称 == "10级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 < 6 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买装备礼包(10, id)

		道具使用 = true
	elseif 名称 == "20级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 < 6 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买装备礼包(20, id)

		道具使用 = true
	elseif 名称 == "30级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 < 6 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买装备礼包(30, id)

		道具使用 = true
	elseif 名称 == "50级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 < 6 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买装备礼包(50, id)

		道具使用 = true
	elseif 名称 == "40级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 < 6 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买高级装备礼包(40, id)

		道具使用 = true
	elseif 名称 == "1号助战装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 6 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		local lv = 10

		if 单机设置 then
			lv = 30
		end

		礼包奖励类:指定助战全套装备(id, lv, "无级别限制", id, 1)

		道具使用 = true
	elseif 名称 == "2号助战装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 6 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		local lv = 10

		if 单机设置 then
			lv = 30
		end

		礼包奖励类:指定助战全套装备(id, lv, "无级别限制", id, 2)

		道具使用 = true
	elseif 名称 == "3号助战装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 6 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		local lv = 10

		if 单机设置 then
			lv = 30
		end

		礼包奖励类:指定助战全套装备(id, lv, "无级别限制", id, 3)

		道具使用 = true
	elseif 名称 == "4号助战装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 6 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		local lv = 10

		if 单机设置 then
			lv = 30
		end

		礼包奖励类:指定助战全套装备(id, lv, "无级别限制", id, 4)

		道具使用 = true
	elseif 名称 == "种族坐骑礼包" then
		if 玩家数据[id].角色:增加坐骑1(id) then
			道具使用 = true
		end
	elseif 名称 == "祥瑞坐骑礼包" then
		if 玩家数据[id].角色:增加坐骑2(id) then
			道具使用 = true
		end
	elseif 名称 == "神行百变·坐骑礼包" then
		if 玩家数据[id].角色:增加指定坐骑(id, "神行百变") then
			道具使用 = true
		end
	elseif 名称 == "百变坐骑·坐骑礼包" then
		if 玩家数据[id].角色:增加指定坐骑(id, "百变坐骑") then
			道具使用 = true
		end
	elseif 名称 == "60级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买高级装备礼包(60, id)

		道具使用 = true
	elseif 名称 == "70级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买高级装备礼包(70, id)

		道具使用 = true
	elseif 名称 == "80级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买高级装备礼包(80, id)

		道具使用 = true
	elseif 名称 == "90级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买装备礼包(90, id)

		道具使用 = true
	elseif 名称 == "100级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买装备礼包(100, id)

		道具使用 = true
	elseif 名称 == "120级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买高级装备礼包(120, id)

		道具使用 = true
	elseif 名称 == "130级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买高级装备礼包(130, id)

		道具使用 = true
	elseif 名称 == "130级补偿装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买高级装备礼包(130, id)

		道具使用 = true
	elseif 名称 == "140级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买高级装备礼包(140, id)

		道具使用 = true
	elseif 名称 == "130级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买高级装备礼包(130, id)

		道具使用 = true
	elseif 名称 == "140级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买装备礼包(140, id)

		道具使用 = true
	elseif 名称 == "150级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买装备礼包(150, id)

		道具使用 = true
	elseif 名称 == "160级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买装备礼包(160, id)

		道具使用 = true
	elseif 名称 == "160级高级装备礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		玩家数据[id].角色:购买高级装备礼包(160, id)

		道具使用 = true
	elseif 名称 == "80级灵饰礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		礼包奖励类:全套灵饰(id, 80, "无级别限制")

		道具使用 = true
	elseif 名称 == "100级灵饰礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		礼包奖励类:全套灵饰(id, 100, "无级别限制")

		道具使用 = true
	elseif 名称 == "60级灵饰礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		礼包奖励类:全套灵饰(id, 60, "无级别限制")

		道具使用 = true
	elseif 名称 == "月卡" then
		if 玩家数据[id].角色.数据.月卡激活 == nil then
			玩家数据[id].角色.数据.月卡激活 = 0
			玩家数据[id].角色.数据.月卡领取 = 0
		end

		玩家数据[id].角色.数据.月卡激活 = 1
		玩家数据[id].角色.数据.月卡领取 = 玩家数据[id].角色.数据.月卡领取 + 30

		常规提示(id, "月卡激活成功")

		道具使用 = true
	elseif 名称 == "神秘钥匙" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 5 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		if 玩家数据[id].角色.数据.等级 < 109 then
			常规提示(id, "现在不能开启礼包,你等级未达到109级")

			return 0
		end

		玩家数据[id].道具:给予书铁(id, {
			14,
			14
		}, "指南书")
		玩家数据[id].道具:给予书铁(id, {
			14,
			14
		}, "精铁")

		道具使用 = true
	elseif 名称 == "1级宝石礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 6 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		for i = 1, #宝石列表 do
			self:给予道具(id, 宝石列表[i], 1)
		end

		道具使用 = true
	elseif 名称 == "5级宝石礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 6 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		for i = 1, #宝石列表 do
			self:给予道具(id, 宝石列表[i], 5)
		end

		道具使用 = true
	elseif 名称 == "7级宝石礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 6 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		for i = 1, #宝石列表 do
			self:给予道具(id, 宝石列表[i], 7)
		end

		道具使用 = true
	elseif 名称 == "10级宝石礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 <= 6 then
			常规提示(id, "您的道具栏物品已经满啦")

			return 0
		end

		for i = 1, #宝石列表 do
			self:给予道具(id, 宝石列表[i], 10)
		end

		道具使用 = true
	elseif 名称 == "跨服专属礼包" then
		local 道具格子 = 玩家数据[id].角色:取道具格子2()

		if 道具格子 < 2 then
			常规提示(id, "您的道具栏没有足够的空间")

			return 0
		end

		local 临时格子 = 玩家数据[id].角色:取道具格子()
		local 临时道具编号 = self:取新编号()
		self.数据[临时道具编号] = 物品类()
		玩家数据[id].角色.数据.道具[临时格子] = 临时道具编号
		local 临时名称 = 绑定等级物品()[26][1]
		local 物品数据 = 取物品数据(临时名称)

		玩家数据[id].道具.数据[临时道具编号]:置对象(临时名称)

		玩家数据[id].道具.数据[临时道具编号].级别限制 = 5
		玩家数据[id].道具.数据[临时道具编号].耐久 = 500
		玩家数据[id].道具.数据[临时道具编号].防御 = 100
		玩家数据[id].道具.数据[临时道具编号].气血 = 50000
		玩家数据[id].道具.数据[临时道具编号].不可交易 = true
		临时格子 = 玩家数据[id].角色:取道具格子()
		临时名称 = 绑定等级物品()[22][17]
		临时道具编号 = self:取新编号()
		self.数据[临时道具编号] = 物品类()
		玩家数据[id].角色.数据.道具[临时格子] = 临时道具编号

		玩家数据[id].道具.数据[临时道具编号]:置对象(临时名称)

		玩家数据[id].道具.数据[临时道具编号].级别限制 = 160
		玩家数据[id].道具.数据[临时道具编号].鉴定 = false
		玩家数据[id].道具.数据[临时道具编号].五行 = 取五行()
		玩家数据[id].道具.数据[临时道具编号].耐久 = 500
		玩家数据[id].道具.数据[临时道具编号].识别码 = id .. "_" .. os.time() .. "_" .. 取随机数(1, 999) .. "_" .. id
		玩家数据[id].道具.数据[临时道具编号].专用 = id
		玩家数据[id].道具.数据[临时道具编号].不可交易 = true
		玩家数据[id].道具.数据[临时道具编号].特效 = "无级别限制"
		玩家数据[id].道具.数据[临时道具编号].防御 = 192
		玩家数据[id].道具.数据[临时道具编号].气血 = 25000

		常规提示(id, "您获得了专属道具")

		道具使用 = true
	elseif 名称 == "元宵" then
		self:元宵使用(连接id, id, 内容)

		return
	elseif 名称 == "宠物口粮" or 名称 == "高级宠物口粮" then
		if 内容.窗口 ~= "召唤兽" then
			常规提示(id, "请选择召唤兽使用。")

			return
		end

		local zc = 20

		if 名称 == "高级宠物口粮" then
			zc = 50
		end

		if 玩家数据[id].召唤兽.数据[加血对象].忠诚 >= 100 then
			常规提示(id, "您的#P" .. 玩家数据[id].召唤兽.数据[加血对象].名称 .. "#Y忠诚度已满、无需喂养。")

			return
		else
			道具使用 = true
			local jc = math.min(玩家数据[id].召唤兽.数据[加血对象].忠诚 + zc, 100) - 玩家数据[id].召唤兽.数据[加血对象].忠诚
			玩家数据[id].召唤兽.数据[加血对象].忠诚 = math.min(玩家数据[id].召唤兽.数据[加血对象].忠诚 + zc, 100)

			常规提示(id, "您的#P" .. 玩家数据[id].召唤兽.数据[加血对象].名称 .. "#Y忠诚度增加了#R" .. qz1(jc) .. "#Y点。")
		end
	elseif 名称 == "资质丸" then
		self:资质丸使用(连接id, id, 内容)

		return
	elseif 名称 == "还魂秘术" or 名称 == "蚩尤武诀" or 名称 == "黄帝内经" or 名称 == "六艺修行书" then
		self:孩子书使用(连接id, id, 内容)

		return
	elseif string.find(名称, "经脉秘籍") then
		self:孩子书使用(连接id, id, 内容, 名称)

		return
	elseif 名称 == "炼兽真经" then
		self:炼兽真经使用(连接id, id, 内容)

		return
	elseif 名称 == "易经丹" then
		self:易经丹使用(连接id, id, 内容)

		return
	elseif 名称 == "清灵净瓶" then
		self:清灵净瓶处理(连接id, id, 内容)

		return
	elseif 名称 == "初级清灵仙露" or 名称 == "中级清灵仙露" or 名称 == "高级清灵仙露" then
		self:清灵仙露处理(连接id, id, 内容)

		return
	elseif 名称 == "玉葫灵髓" then
		self:玉葫灵髓使用(连接id, id, 内容)

		return
	elseif 名称 == "未激活的符石" then
		self:激活符石对话(id, 道具id, 道具格子)

		return
	elseif 名称 == "未激活的星石" then
		self:激活符石对话(id, 道具id, 道具格子)

		return
	elseif 名称 == "空白强化符" then
		if 玩家数据[id].角色.数据.师门技能 ~= nil then
			for n = 1, #玩家数据[id].角色.数据.师门技能 do
				for i = 1, #玩家数据[id].角色.数据.师门技能[n].包含技能 do
					if 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "嗜血" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "轻如鸿毛" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "拈花妙指" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "盘丝舞" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "一气化三清" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "浩然正气" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "龙附" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "神兵护法" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "魔王护持" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "莲华妙法" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "神力无穷" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "尸气漫天" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "神木呓语" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "穿云破空" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "元阳护体" or 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称 == "担山赶月" then
						if 玩家数据[id].角色.数据.师门技能[n].包含技能[i].等级 >= 35 then
							if 玩家数据[id].角色.数据.师门技能[n].包含技能[i].等级 <= 玩家数据[id].角色.数据.活力 then
								玩家数据[id].角色.数据.活力 = 玩家数据[id].角色.数据.活力 - 玩家数据[id].角色.数据.师门技能[n].包含技能[i].等级

								self:给予道具(id, "强化符", 1, 玩家数据[id].角色.数据.师门技能[n].包含技能[i].等级, 玩家数据[id].角色.数据.师门技能[n].包含技能[i].名称)

								道具使用 = true
							else
								常规提示(id, "#Y/你当前活力不足,无法使用该物品")

								return
							end
						else
							常规提示(id, "#Y/你还没学会制作强化符,无法使用该物品")

							return
						end
					end
				end
			end
		else
			常规提示(id, "#Y/你还没门派,无法使用该物品")
		end
	elseif 名称 == "强化符" then
		玩家数据[id].道具操作 = {
			类型 = 包裹类型,
			编号 = 内容.编号,
			id = 道具id,
			道具 = 玩家数据[id].道具:索要道具1(id)
		}

		发送数据(连接id, 65, 玩家数据[id].道具操作)

		return
	elseif 名称 == "牵魂香" then
		local rwid = 玩家数据[id].角色:取任务(9001)

		if rwid ~= 0 then
			if tostring(玩家数据[id].角色.数据.地图数据.编号) == tostring(任务数据[rwid].地图编号) then
				道具使用 = true

				玩家数据[id].角色:取消任务(rwid)

				任务数据[rwid] = nil
				道具使用 = true

				任务处理类:添加梦靥夜叉(id)
			else
				常规提示(id, "#Y/在这里使用不了。")

				return
			end
		else
			常规提示(id, "#Y/你无法使用该道具。")

			道具使用 = true
		end
	elseif 名称 == "天眼通符" then
		local 使用 = false
		local 任务列表 = {
			8,
			9000
		}

		for i = 1, #任务列表 do
			if 玩家数据[id].角色:取任务(任务列表[i]) ~= 0 then
				任务数据[玩家数据[id].角色:取任务(任务列表[i])].显示x = 任务数据[玩家数据[id].角色:取任务(任务列表[i])].x
				任务数据[玩家数据[id].角色:取任务(任务列表[i])].显示y = 任务数据[玩家数据[id].角色:取任务(任务列表[i])].y
				使用 = true
			end
		end

		if 使用 then
			道具使用 = true

			常规提示(id, "#Y/你使用了天眼通符")
			玩家数据[id].角色:刷新任务跟踪()
		else
			常规提示(id, "#Y/你当前无需使用天眼通符。")

			return
		end
	elseif 名称 == "海马" then
		玩家数据[id].角色.数据.体力 = 玩家数据[id].角色.数据.体力 + 150
		玩家数据[id].角色.数据.活力 = 玩家数据[id].角色.数据.活力 + 150

		if 玩家数据[id].角色.数据.最大体力 < 玩家数据[id].角色.数据.体力 then
			玩家数据[id].角色.数据.体力 = 玩家数据[id].角色.数据.最大体力
		end

		if 玩家数据[id].角色.数据.最大活力 < 玩家数据[id].角色.数据.活力 then
			玩家数据[id].角色.数据.活力 = 玩家数据[id].角色.数据.最大活力
		end

		常规提示(id, "#Y/你使用海马增加了150点体力和活力")

		道具使用 = true
	elseif 名称 == "怪物卡片" then
		if (self.数据[道具id].数量 or 1) > 1 then
			local 行囊格子 = 玩家数据[id].角色:取道具格子()

			if 行囊格子 == 0 then
				常规提示(id, "您的道具栏物品已经满啦")

				return
			end
		end

		local 剧情等级 = 玩家数据[id].角色:取剧情技能等级("变化之术")

		if 剧情等级 <= 3 then
			if 剧情等级 + 1 < self.数据[道具id].等级 then
				常规提示(id, "#Y/你的变化之术等级太低了")

				return
			end
		elseif 剧情等级 == 4 then
			if 剧情等级 + 2 < self.数据[道具id].等级 then
				常规提示(id, "#Y/你的变化之术等级太低了")

				return
			end
		elseif 剧情等级 >= 5 and 剧情等级 + 10 < self.数据[道具id].等级 then
			常规提示(id, "#Y/你的变化之术等级太低了")

			return
		end

		if 玩家数据[id].角色:取任务(1) ~= 0 then
			任务数据[玩家数据[id].角色:取任务(1)] = nil

			玩家数据[id].角色:取消任务(1)
		end

		玩家数据[id].角色.数据.变身数据 = self.数据[道具id].造型
		玩家数据[id].角色.数据.变身卡技能 = nil

		if self.数据[道具id].技能 ~= nil and self.数据[道具id].技能 ~= "" then
			玩家数据[id].角色.数据.变身卡技能 = self.数据[道具id].技能
		end

		玩家数据[id].角色.数据.变异 = false

		if ygsj() <= 5 then
			玩家数据[id].角色.数据.变异 = true

			常规提示(id, "恭喜你！卡片产生了变异效果")
		end

		道具使用 = true

		玩家数据[id].角色:刷新信息()
		发送数据(连接id, 37, {
			变身数据 = 玩家数据[id].角色.数据.变身数据,
			变异 = 玩家数据[id].角色.数据.变异
		})
		常规提示(id, "你使用了怪物卡片")
		发送数据(连接id, 5506, {
			玩家数据[id].角色:取气血数据()
		})
		发送数据(玩家数据[id].连接id, 12)
		任务处理类:添加变身(id, 剧情等级)
		地图处理类:更改模型(id, {
			玩家数据[id].角色.数据.变身数据,
			玩家数据[id].角色.数据.变异
		}, 1)
	elseif 名称 == "藏宝图" or 名称 == "高级藏宝图" then
		if self:取队长权限(id) == false then
			常规提示(id, "#Y/你不是队长，无法使用此道具！")

			return
		end

		if 是否月卡用户(id) then
			地图处理类:npc传送(id, self.数据[道具id].地图编号, self.数据[道具id].x, self.数据[道具id].y)
			常规提示(id, "#R/月卡用户#Y快捷挖宝成功！")
		elseif self.数据[道具id].地图编号 ~= 玩家数据[id].角色.数据.地图数据.编号 then
			常规提示(id, "#Y/当前地图没有宝藏哟！")

			return
		elseif math.abs(self.数据[道具id].x - 玩家数据[id].角色.数据.地图数据.x / 20) > 10 or math.abs(self.数据[道具id].y - 玩家数据[id].角色.数据.地图数据.y / 20) > 10 then
			常规提示(id, "#Y/这里没有宝藏哟！")

			return
		end

		道具使用 = true

		if 名称 == "高级藏宝图" then
			self:高级藏宝图处理(id)
		else
			self:低级藏宝图处理(id)
		end
	elseif 名称 == "九转金丹" then
		if 玩家数据[id].角色.数据.修炼[玩家数据[id].角色.数据.修炼.当前][3] <= 玩家数据[id].角色.数据.修炼[玩家数据[id].角色.数据.修炼.当前][1] then
			常规提示(id, "#Y/你的此项修炼已经达上限")

			return
		end

		玩家数据[id].角色:添加人物修炼经验(id, math.floor(self.数据[道具id].阶品 * 0.5))

		道具使用 = true
	elseif 名称 == "修炼果" then
		if 玩家数据[id].角色.数据.bb修炼[玩家数据[id].角色.数据.bb修炼.当前][3] <= 玩家数据[id].角色.数据.bb修炼[玩家数据[id].角色.数据.bb修炼.当前][1] then
			常规提示(id, "#Y/你的此项修炼已经达上限")

			return
		end

		玩家数据[id].角色:添加bb修炼经验(id, 150)

		道具使用 = true
	elseif 名称 == "帮派银票" then
		常规提示(id, "#Y你拥有的银票，存有#R" .. self.数据[道具id].初始金额 .. "#Y两银子#G\n#Y你需要赚到#R" .. self.数据[道具id].完成金额 .. "#Y才可以完成任务")

		return
	elseif 名称 == "月华露" then
		if 内容.窗口 ~= "召唤兽" or 玩家数据[id].召唤兽.数据[内容.序列] == nil then
			常规提示(id, "请先选中一只召唤兽")

			return
		end

		local 高于等级 = 召唤兽经验高于等级

		if 玩家数据[id].角色.数据.剧情.飞升 == true and 玩家数据[id].角色.数据.飞升 == true then
			高于等级 = 召唤兽经验高于等级 + 15
		end

		if 玩家数据[id].召唤兽.数据[内容.序列].等级 >= 玩家数据[id].角色.数据.等级 + 高于等级 then
			常规提示(id, "该召唤兽已超过人物等级" .. 高于等级 .. "级，无法使用该道具")

			return
		elseif 召唤兽最高等级 <= 玩家数据[id].召唤兽.数据[内容.序列].等级 then
			常规提示(id, "该召唤兽已经达到最高等级#P" .. 召唤兽最高等级 .. "#Y级，无法使用该道具")

			return
		end

		local 临时等级 = 玩家数据[id].召唤兽.数据[内容.序列].等级

		if 临时等级 == 0 then
			临时等级 = 1
		end

		玩家数据[id].召唤兽:添加经验(连接id, id, 内容.序列, self.数据[道具id].阶品 * 100 * 临时等级)

		道具使用 = true
	elseif 名称 == "宠物饰品通用丹" then
		if 内容.窗口 ~= "召唤兽" or 玩家数据[id].召唤兽.数据[内容.序列] == nil then
			常规提示(id, "请先选中一只召唤兽")

			return
		elseif 玩家数据[id].召唤兽.数据[内容.序列].饰品 == "宠物饰品通用丹" then
			常规提示(id, "已经携带过饰品了!")

			return
		elseif 玩家数据[id].召唤兽.数据[内容.序列].等级 >= 0 then
			玩家数据[id].召唤兽.数据[内容.序列].饰品 = self.数据[道具id].名称

			玩家数据[id].召唤兽:刷新信息(内容.序列)
			常规提示(id, "佩戴召唤兽饰品成功！")

			道具使用 = true
		end
	elseif 通灵装备1[名称] ~= nil then
		if 内容.窗口 ~= "召唤兽" or 玩家数据[id].召唤兽.数据[内容.序列] == nil then
			常规提示(id, "请先选中一只召唤兽")

			return
		elseif 玩家数据[id].召唤兽.数据[内容.序列].饰品 == "宠物饰品通用丹" then
			常规提示(id, "已经携带过饰品了!")

			return
		elseif 玩家数据[id].召唤兽.数据[内容.序列].等级 >= 0 then
			玩家数据[id].召唤兽.数据[内容.序列].饰品 = self.数据[道具id].名称

			玩家数据[id].召唤兽:刷新信息(内容.序列)
			常规提示(id, "佩戴召唤兽饰品成功！")

			道具使用 = true
		end
	elseif 名称 == "坐骑转型丹" then
		if 内容.窗口 ~= "坐骑" or 玩家数据[id].角色.数据.坐骑列表[内容.序列] == nil then
			常规提示(id, "请先选中一只坐骑")

			return
		elseif 玩家数据[id].角色.数据.坐骑列表[内容.序列].特殊坐骑 == true then
			常规提示(id, "使用失败、特殊坐骑无法转换造型！")

			return
		else
			玩家数据[id].角色.数据.坐骑列表[内容.序列].可选形象 = nil
			玩家数据[id].角色.数据.坐骑列表[内容.序列].形象 = nil
			local 坐骑造型 = 玩家数据[id].角色.数据.坐骑列表[内容.序列].模型
			local xz = 1
			local 新换造型 = ""

			while 新换造型 == 坐骑造型 or xz == 1 do
				if 坐骑转换 == 1 then
					新换造型 = 坐骑转换模型1[取随机数(1, #坐骑转换模型1)]
				else
					新换造型 = 坐骑转换模型[取随机数(1, #坐骑转换模型)]
				end

				xz = 0
			end

			玩家数据[id].角色.数据.坐骑列表[内容.序列].模型 = 新换造型
			玩家数据[id].角色.数据.坐骑列表[内容.序列].名称 = 新换造型

			常规提示(id, "恭喜！坐骑造型为#R" .. 新换造型)
			发送数据(玩家数据[id].连接id, 60, 玩家数据[id].角色.数据.坐骑)
			发送数据(玩家数据[id].连接id, 61, 玩家数据[id].角色.数据.坐骑列表)
			地图处理类:更新坐骑(id, 玩家数据[id].角色.数据.坐骑)

			道具使用 = true
		end
	elseif 名称 == "坐骑内丹" then
		if 内容.窗口 ~= "坐骑" or 玩家数据[id].角色.数据.坐骑列表[内容.序列] == nil then
			常规提示(id, "请先选中一只坐骑")

			return
		else
			local 数量 = 取随机数(坐骑内丹最低技能数, 坐骑内丹最高技能数)
			local 最低 = 1
			local 加成 = 0
			local 特殊 = false

			if 玩家数据[id].角色.数据.坐骑列表[内容.序列].模型 == "神行百变" or 玩家数据[id].角色.数据.坐骑列表[内容.序列].模型 == "百变坐骑" then
				数量 = math.min(数量 + 1, 坐骑内丹最高技能数 + 2)
				最低 = 最低 + 1
				加成 = 加成 + 20
				特殊 = true
			end

			local 坐骑技能 = {}
			local dj = {}
			local ts = {}

			for i = 1, 数量 do
				if ygsj() <= 坐骑内丹技能数概率[i] + 加成 or i <= 最低 then
					local 随机技能, 加入技能 = nil

					if ygsj(1000) <= 坐骑内丹特殊技能概率 + math.min(加成, 坐骑内丹特殊技能概率 * 2.5) then
						随机技能 = 取随机数(1, #坐骑特殊技能)

						while ts[随机技能] ~= nil do
							随机技能 = 取随机数(1, #坐骑特殊技能)
						end

						ts[随机技能] = "1"
						加入技能 = 坐骑特殊技能[随机技能] .. "【伪】"
					else
						随机技能 = 取随机数(1, #坐骑低级技能)

						while dj[随机技能] ~= nil do
							随机技能 = 取随机数(1, #坐骑低级技能)
						end

						dj[随机技能] = "1"
						加入技能 = 坐骑低级技能[随机技能]
					end

					table.insert(坐骑技能, 加入技能)
				elseif not 特殊 then
					break
				end
			end

			玩家数据[id].角色.数据.坐骑列表[内容.序列].技能 = 坐骑技能
			玩家数据[id].角色.数据.坐骑列表[内容.序列].技能等级 = {}
			玩家数据[id].角色.数据.坐骑列表[内容.序列].技能点 = math.floor(玩家数据[id].角色.数据.坐骑列表[内容.序列].等级 / 6)

			常规提示(id, "你的坐骑重新领悟了技能，并且技能点已经重置")
			发送数据(玩家数据[id].连接id, 61.1, {
				编号 = 内容.序列,
				数据 = 玩家数据[id].角色.数据.坐骑列表[内容.序列]
			})

			道具使用 = true
		end
	elseif 名称 == "翡翠琵琶" then
		if 玩家数据[id].角色.数据.炼丹灵气 == nil then
			玩家数据[id].角色.数据.炼丹灵气 = 5000
		else
			玩家数据[id].角色.数据.炼丹灵气 = 玩家数据[id].角色.数据.炼丹灵气 + 5000
		end

		常规提示(id, "你使用了翡翠琵琶,当前可用炼丹灵气为#R" .. 玩家数据[id].角色.数据.炼丹灵气 .. "#Y点")

		道具使用 = true
	elseif 名称 == "镇妖拘魂铃" then
		self:刷新铃铛奖励(id)
		发送数据(连接id, 3900, {
			物品id = 道具id,
			铃铛个数 = self.数据[道具id].数量,
			奖励数据 = 铃铛记录[id]
		})

		return
	elseif 名称 == "金砂丹" or 名称 == "银砂丹" or 名称 == "铜砂丹" then
		local 银子 = 0

		if 名称 == "金砂丹" then
			银子 = 1000000
		elseif 名称 == "银砂丹" then
			银子 = 100000
		elseif 名称 == "铜砂丹" then
			银子 = 10000
		end

		玩家数据[id].角色:添加银子(银子, "造化丹", 1)

		道具使用 = true
	elseif 名称 == "特效石碎片" then
		if self.数据[道具id].数量 < 20 then
			常规提示(id, "不足20个无法合成!")

			return
		end

		快捷给道具(id, "特效石", 1, self.数据[道具id].特效)

		删除数量 = 20
		道具使用 = true
	elseif 名称 == "魔兽残卷" then
		if self.数据[道具id].数量 < 100 then
			常规提示(id, "不足100个无法快捷上交!")

			return
		end

		奖励名称[id] = 快捷给道具(id, "特殊魔兽要诀", 1)

		广播消息({
			频道 = "xt",
			内容 = format("#S(魔兽残卷)#R/%s#Y累计收集了100份#R魔兽残卷#Y,受到#R唐王#Y大加赞赏,特赐下#G/%s#Y以示褒奖！" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})

		删除数量 = 100
		道具使用 = true
	elseif 名称 == "百炼晶石碎片" then
		if self.数据[道具id].数量 < 10 then
			常规提示(id, "不足10个无法合成!")

			return
		end

		快捷给道具(id, "百炼晶石", 1)

		删除数量 = 10
		道具使用 = true
	elseif 名称 == "百炼晶石" then
		玩家数据[id].角色.数据.百炼次数 = (玩家数据[id].角色.数据.百炼次数 or 0) + 1
		删除数量 = 1
		道具使用 = true

		常规提示(id, "#Y百炼打造次数#R+1#Y、当前剩余次数：#R" .. 玩家数据[id].角色.数据.百炼次数 .. "#Y次")
	elseif 名称 == "驾驭宝典" then
		local 消耗 = 玩家数据[id].角色.数据.召唤兽携带数量 - 初始召唤兽携带数量 + 1

		if 消耗 <= self.数据[道具id].数量 then
			if (玩家数据[id].角色.数据.召唤兽携带数量 or 初始召唤兽携带数量) < 最大召唤兽携带数量 then
				玩家数据[id].角色.数据.召唤兽携带数量 = (玩家数据[id].角色.数据.召唤兽携带数量 or 初始召唤兽携带数量) + 1

				常规提示(id, "#Y恭喜,你的召唤兽携带数量增加了！当前可携带#R" .. 玩家数据[id].角色.数据.召唤兽携带数量 .. "#Y只")

				删除数量 = 消耗
				道具使用 = true

				发送数据(玩家数据[id].连接id, 17.3, {
					数量 = 玩家数据[id].角色.数据.召唤兽携带数量
				})
			else
				常规提示(id, "#Y使用失败、你的召唤兽携带数量已经达到上限了！")

				return
			end
		else
			常规提示(id, "#P驾驭宝典#Y数量不足、当前需要#R" .. 消耗 .. "#Y本。")

			return
		end
	elseif 名称 == "御行宝典" then
		local 消耗 = 玩家数据[id].角色.数据.坐骑携带数量 - 初始坐骑携带数量 + 1

		if 消耗 <= self.数据[道具id].数量 then
			if (玩家数据[id].角色.数据.坐骑携带数量 or 初始坐骑携带数量) < 最大坐骑携带数量 then
				玩家数据[id].角色.数据.坐骑携带数量 = (玩家数据[id].角色.数据.坐骑携带数量 or 初始坐骑携带数量) + 1

				常规提示(id, "#Y恭喜,你的坐骑携带数量增加了！当前可携带#R" .. 玩家数据[id].角色.数据.坐骑携带数量 .. "#Y只")

				删除数量 = 消耗
				道具使用 = true

				发送数据(玩家数据[id].连接id, 17.4, {
					数量 = 玩家数据[id].角色.数据.坐骑携带数量
				})
			else
				常规提示(id, "#Y使用失败、你的坐骑携带数量已经达到上限了！")

				return
			end
		else
			常规提示(id, "#P御行宝典#Y数量不足、当前需要#R" .. 消耗 .. "#Y本。")

			return
		end
	elseif 名称 == "契约之书" then
		local 消耗 = 玩家数据[id].角色.数据.助战携带数量 - 初始助战携带数量 + 1

		if 消耗 <= self.数据[道具id].数量 then
			if (玩家数据[id].角色.数据.助战携带数量 or 初始助战携带数量) < 最大助战携带数量 then
				玩家数据[id].角色.数据.助战携带数量 = (玩家数据[id].角色.数据.助战携带数量 or 初始助战携带数量) + 1

				常规提示(id, "#Y恭喜,你的助战携带数量增加了！当前可携带#R" .. 玩家数据[id].角色.数据.助战携带数量 .. "#Y位")

				删除数量 = 消耗
				道具使用 = true

				发送数据(玩家数据[id].连接id, 17.41, {
					数量 = 玩家数据[id].角色.数据.助战携带数量
				})
			else
				常规提示(id, "#Y使用失败、你的助战携带数量已经达到上限了！")

				return
			end
		else
			常规提示(id, "#P契约之书#Y数量不足、当前需要#R" .. 消耗 .. "#Y本。")

			return
		end
	elseif 名称 == "初级神魂丹" or 名称 == "中级神魂丹" or 名称 == "高级神魂丹" then
		if self.数据[道具id].数量 == nil then
			self.数据[道具id].数量 = 1
		end

		if self.数据[道具id].数量 < 99 then
			常规提示(id, "请在助战装备栏里面使用!")

			return
		end

		if 名称 == "初级神魂丹" then
			玩家数据[id].道具:给予道具(id, "中级神魂丹", 1)
			常规提示(id, "#Y/你获得了中级神魂丹")
		elseif 名称 == "中级神魂丹" then
			玩家数据[id].道具:给予道具(id, "高级神魂丹", 1)
			常规提示(id, "#Y/你获得了高级神魂丹")
		elseif 名称 == "高级神魂丹" then
			玩家数据[id].道具:给予道具(id, "顶级神魂丹", 1)
			常规提示(id, "#Y/你获得了顶级神魂丹")
		end

		删除数量 = 99
		道具使用 = true
	elseif 名称 == "魔兽要诀" or 名称 == "高级魔兽要诀" or 名称 == "特殊魔兽要诀" or 名称 == "神兽兽决" or 名称 == "点化石" then
		if self.数据[道具id].数量 == nil then
			self.数据[道具id].数量 = 1
			self.数据[道具id].可叠加 = true
		end
	elseif 名称 == "金刚石" or 名称 == "夜光珠" or 名称 == "避水珠" or 名称 == "龙鳞" or 名称 == "定魂珠" then
		if self.数据[道具id].数量 == nil then
			self.数据[道具id].数量 = 1
			self.数据[道具id].可叠加 = true
		end

		local 五宝情况 = {
			金刚石 = {
				数量 = 0,
				位置 = 0
			},
			夜光珠 = {
				数量 = 0,
				位置 = 0
			},
			龙鳞 = {
				数量 = 0,
				位置 = 0
			},
			定魂珠 = {
				数量 = 0,
				位置 = 0
			},
			避水珠 = {
				数量 = 0,
				位置 = 0
			}
		}
		local 道具数据 = 玩家数据[id].角色.数据[包裹类型]
		local 个数 = 0

		for i = 1, 100 do
			if self.数据[道具数据[i]] ~= nil and 五宝列表1[self.数据[道具数据[i]].名称] ~= nil then
				if self.数据[道具数据[i]].数量 == nil then
					self.数据[道具数据[i]].数量 = 1
					self.数据[道具数据[i]].可叠加 = true
				end

				if self.数据[道具数据[i]].数量 >= 1 then
					if 五宝情况[self.数据[道具数据[i]].名称].数量 == 0 then
						五宝情况[self.数据[道具数据[i]].名称] = {
							位置 = 道具数据[i],
							数量 = self.数据[道具数据[i]].数量,
							格子 = i + 0
						}
						个数 = 个数 + 1

						if 个数 >= 5 then
							break
						end
					end
				else
					self.数据[道具数据[i]] = nil
					道具数据[i] = nil
				end
			end
		end

		if 五宝情况.金刚石.数量 > 0 and 五宝情况.夜光珠.数量 > 0 and 五宝情况.龙鳞.数量 > 0 and 五宝情况.定魂珠.数量 > 0 and 五宝情况.避水珠.数量 > 0 then
			self.数据[五宝情况.金刚石.位置].数量 = self.数据[五宝情况.金刚石.位置].数量 - 1

			if self.数据[五宝情况.金刚石.位置].数量 < 1 then
				self.数据[五宝情况.金刚石.位置] = nil
			end

			self.数据[五宝情况.定魂珠.位置].数量 = self.数据[五宝情况.定魂珠.位置].数量 - 1

			if self.数据[五宝情况.定魂珠.位置].数量 < 1 then
				self.数据[五宝情况.定魂珠.位置] = nil
			end

			self.数据[五宝情况.夜光珠.位置].数量 = self.数据[五宝情况.夜光珠.位置].数量 - 1

			if self.数据[五宝情况.夜光珠.位置].数量 < 1 then
				self.数据[五宝情况.夜光珠.位置] = nil
			end

			self.数据[五宝情况.避水珠.位置].数量 = self.数据[五宝情况.避水珠.位置].数量 - 1

			if self.数据[五宝情况.避水珠.位置].数量 < 1 then
				self.数据[五宝情况.避水珠.位置] = nil
			end

			self.数据[五宝情况.龙鳞.位置].数量 = self.数据[五宝情况.龙鳞.位置].数量 - 1

			if self.数据[五宝情况.龙鳞.位置].数量 < 1 then
				self.数据[五宝情况.龙鳞.位置] = nil
			end

			刷新道具行囊多格(id, "道具", {
				五宝情况.金刚石.格子,
				五宝情况.定魂珠.格子,
				五宝情况.夜光珠.格子,
				五宝情况.避水珠.格子,
				五宝情况.龙鳞.格子
			}, {
				五宝情况.金刚石.位置,
				五宝情况.定魂珠.位置,
				五宝情况.夜光珠.位置,
				五宝情况.避水珠.位置,
				五宝情况.龙鳞.位置
			})
			快捷给道具(id, "特赦令牌", 1, nil, nil, 1)

			return
		else
			常规提示(id, "五宝不齐，兑换失败！")

			return
		end
	elseif self.数据[道具id].总类 == 200 then
		if 玩家数据[id].角色.数据.地图数据.编号 == 200000 + id then
			local tx = {
				方向 = 1,
				x = 62,
				y = 64,
				名称 = 名称
			}

			发送数据(玩家数据[id].连接id, 1027, {
				tx
			})

			return
		else
			常规提示(id, "这不是你的房子或者不是室内")

			return
		end
	elseif 名称 == "如意符" then
		if 玩家数据[id].角色.数据.地图数据.编号 == 200000 + id or 玩家数据[id].角色.数据.地图数据.编号 == 100000 + id then
			发送数据(玩家数据[id].连接id, 1028)

			return
		else
			常规提示(id, "这不是你的房子或者不是室内和庭院")

			return
		end
	elseif self.数据[道具id].总类 == 202 then
		if 玩家数据[id].角色.数据.地图数据.编号 == 100000 + id then
			local tx = {
				方向 = 1,
				x = 62,
				y = 64,
				名称 = 名称
			}

			发送数据(玩家数据[id].连接id, 1027, {
				tx
			})

			return
		else
			常规提示(id, "这不是你的房子或者不是庭院")

			return
		end
	elseif 名称 == "神兜兜" or 名称 == "神兜兜(专属)" then
		if self.数据[道具id].数量 < 99 then
			常规提示(id, "必须集齐99个才可以使用哟")

			return
		elseif 玩家数据[id].角色.数据.召唤兽携带数量 <= #玩家数据[id].召唤兽.数据 then
			常规提示(id, "你身上没有足够的位置携带神兽了。")

			return
		end

		local 模型 = 神兽模型范围[ygsj(#神兽模型范围)]

		if 特殊神兽列表[模型] ~= nil then
			模型 = 神兽模型范围[ygsj(#神兽模型范围)]
		end

		local 物法 = "法系"

		if ygsj() <= 50 then
			物法 = nil
		end

		玩家数据[id].召唤兽:添加召唤兽(模型, nil, nil, true, 0, 物法, nil, nil, nil, nil, true)

		删除数量 = 99
		道具使用 = true

		常规提示(id, "#Y/你获得了一个新的召唤兽" .. 模型)
	end

	if 道具使用 then
		self:删除道具(连接id, id, 包裹类型, 道具id, 道具格子, 删除数量)
	else
		常规提示(id, "您无法使用这样的道具1")
	end
end

function 道具处理类:删除道具(连接id, id, 包裹类型, 道具id, 道具格子, 删除数量)
	if 删除数量 == nil then
		删除数量 = 1
	end

	if self.数据[道具id].数量 == nil and self.数据[道具id].名称 ~= "怪物卡片" then
		self.数据[道具id] = nil
		玩家数据[id].角色.数据[包裹类型][道具格子] = nil

		刷新道具行囊单格(id, 包裹类型, 道具格子, nil)
	elseif self.数据[道具id].名称 == "怪物卡片" then
		if (self.数据[道具id].数量 or 1) > 1 then
			self.数据[道具id].数量 = self.数据[道具id].数量 - 1

			if self.数据[道具id].次数 > 1 then
				local 行囊格子 = 玩家数据[id].角色:取道具格子()
				local 新格子 = 玩家数据[id].道具:取新编号()
				玩家数据[id].角色.数据.道具[行囊格子] = 新格子
				self.数据[新格子] = DeepCopy(self.数据[道具id])
				self.数据[新格子].次数 = self.数据[道具id].次数 - 1
				self.数据[新格子].数量 = 1

				刷新道具行囊多格(id, 包裹类型, {
					道具格子,
					行囊格子
				}, {
					道具id,
					新格子
				})
			end
		else
			self.数据[道具id].次数 = self.数据[道具id].次数 - 1

			if self.数据[道具id].次数 <= 0 then
				self.数据[道具id] = nil
				玩家数据[id].角色.数据[包裹类型][道具格子] = nil
			end

			刷新道具行囊单格(id, 包裹类型, 道具格子, 道具id)
		end
	else
		self.数据[道具id].数量 = self.数据[道具id].数量 - 删除数量

		if self.数据[道具id].数量 < 1 then
			self.数据[道具id] = nil
			玩家数据[id].角色.数据[包裹类型][道具格子] = nil
		end

		刷新道具行囊单格(id, 包裹类型, 道具格子, 道具id)
	end
end

function 道具处理类:激活符石对话(id, 道具id, 道具格子)
	if self.数据[道具id] ~= nil and self.数据[道具id].名称 == "未激活的符石" then
		玩家数据[id].激活符石 = 道具id
		玩家数据[id].激活符石格子 = 道具格子
		local 消耗数据 = 激活符石消耗(self.数据[道具id].子类)
		local 对话 = "#W/你现在要消耗" .. 消耗数据.体力 .. "点体力" .. 消耗数据.经验 .. "点经验来激活这块符石么。#Y/(激活后为专用，无法转移给他人。)"
		local xx = {
			"确定",
			"取消"
		}
		玩家数据[id].最后对话 = {
			名称 = "激活符石",
			模型 = 玩家数据[id].角色.数据.模型
		}

		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "激活符石",
			模型 = 玩家数据[id].角色.数据.模型,
			对话 = 对话,
			选项 = xx
		})
	elseif self.数据[道具id] ~= nil and self.数据[道具id].名称 == "未激活的星石" then
		玩家数据[id].激活符石 = 道具id
		玩家数据[id].激活符石格子 = 道具格子
		local 消耗数据 = 激活符石消耗(4)
		local 对话 = "#W/你现在要消耗" .. 消耗数据.体力 .. "点体力" .. 消耗数据.经验 .. "点经验来激活这块符石么。#Y/(激活后为专用，无法转移给他人。)"
		local xx = {
			"确定",
			"取消"
		}
		玩家数据[id].最后对话 = {
			名称 = "激活符石",
			模型 = 玩家数据[id].角色.数据.模型
		}

		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "激活符石",
			模型 = 玩家数据[id].角色.数据.模型,
			对话 = 对话,
			选项 = xx
		})
	end
end

function 道具处理类:激活符石(id)
	local 道具id = 玩家数据[id].激活符石
	local 道具格子 = 玩家数据[id].激活符石格子
	local 行囊格子 = 玩家数据[id].角色:取道具格子()

	if 行囊格子 == 0 then
		常规提示(id, "您的道具栏物品已经满啦")

		return
	end

	if self.数据[道具id] ~= nil and self.数据[道具id].名称 == "未激活的符石" then
		local 消耗数据 = 激活符石消耗(self.数据[道具id].子类)

		if 玩家数据[id].角色.数据.体力 < 消耗数据.体力 then
			常规提示(id, "体力不足，无法激活符石。")

			return
		end

		if 玩家数据[id].角色:扣除经验(消耗数据.经验, nil, 1) then
			玩家数据[id].角色:扣除体力(消耗数据.体力, nil, 1)

			local 新格子 = 玩家数据[id].道具:取新编号()
			玩家数据[id].角色.数据.道具[行囊格子] = 新格子
			玩家数据[id].道具.数据[新格子] = DeepCopy(self.数据[道具id])
			玩家数据[id].道具.数据[新格子].识别码 = id .. "_" .. os.time() .. "_" .. 取随机数(1000, 9999999) .. "_" .. 随机序列
			随机序列 = 随机序列 + 1
			玩家数据[id].道具.数据[新格子].分类 = 88
			玩家数据[id].道具.数据[新格子].名称 = self.数据[道具id].符石名称
			玩家数据[id].道具.数据[新格子].符石名称 = nil
			玩家数据[id].道具.数据[新格子].数量 = 1
			玩家数据[id].道具.数据[新格子].不可交易 = true

			扣除背包位置道具(id, 道具格子, 1)
			刷新道具行囊单格(id, "道具", 行囊格子, 新格子)
			添加最后对话(id, "你消耗了" .. 消耗数据.体力 .. "体力" .. 消耗数据.经验 .. "经验,将" .. 玩家数据[id].道具.数据[新格子].名称 .. "成功激活.这块符石可以镶嵌在已经开运过的装备上#50。")
			道具刷新(id, 1)

			return
		else
			常规提示(id, "经验不足，无法激活符石。")

			return
		end
	elseif self.数据[道具id] ~= nil and self.数据[道具id].名称 == "未激活的星石" then
		local 消耗数据 = 激活符石消耗(4)

		if 玩家数据[id].角色.数据.体力 < 消耗数据.体力 then
			常规提示(id, "体力不足，无法激活符石。")

			return
		end

		if 玩家数据[id].角色:扣除经验(消耗数据.经验, nil, 1) then
			玩家数据[id].角色:扣除体力(消耗数据.体力, nil, 1)

			local 新格子 = 玩家数据[id].道具:取新编号()
			玩家数据[id].角色.数据.道具[行囊格子] = 新格子
			玩家数据[id].道具.数据[新格子] = DeepCopy(self.数据[道具id])
			玩家数据[id].道具.数据[新格子].识别码 = id .. "_" .. os.time() .. "_" .. 取随机数(1000, 9999999) .. "_" .. 随机序列
			随机序列 = 随机序列 + 1
			玩家数据[id].道具.数据[新格子].分类 = 91

			if 玩家数据[id].道具.数据[新格子].子类 == 1 then
				玩家数据[id].道具.数据[新格子].名称 = "云荒"
			elseif 玩家数据[id].道具.数据[新格子].子类 == 2 then
				玩家数据[id].道具.数据[新格子].名称 = "暮霭"
			elseif 玩家数据[id].道具.数据[新格子].子类 == 3 then
				玩家数据[id].道具.数据[新格子].名称 = "落日"
			elseif 玩家数据[id].道具.数据[新格子].子类 == 4 then
				玩家数据[id].道具.数据[新格子].名称 = "晓天"
			elseif 玩家数据[id].道具.数据[新格子].子类 == 5 then
				玩家数据[id].道具.数据[新格子].名称 = "林海"
			elseif 玩家数据[id].道具.数据[新格子].子类 == 6 then
				玩家数据[id].道具.数据[新格子].名称 = "流霞"
			else
				玩家数据[id].道具.数据[新格子].名称 = "云荒"
			end

			玩家数据[id].道具.数据[新格子].数量 = 1
			玩家数据[id].道具.数据[新格子].不可交易 = true

			刷新道具行囊单格(id, "道具", 行囊格子, 新格子)
			扣除背包位置道具(id, 道具格子, 1)
			添加最后对话(id, "你消耗了" .. 消耗数据.体力 .. "体力" .. 消耗数据.经验 .. "经验,将" .. 玩家数据[id].道具.数据[新格子].名称 .. "成功激活.这块符石可以镶嵌在已经开运过的装备上#50。")
			道具刷新(id, 1)

			return
		else
			常规提示(id, "经验不足，无法激活符石。")

			return
		end
	end
end

function 道具处理类:孩子书使用(连接id, id, 内容, 经脉)
	self.临时id = 玩家数据[id].角色.数据.道具[内容.编号]
	local 临时技能 = 玩家数据[id].道具.数据[self.临时id].附带技能

	if 内容.窗口 ~= "召唤兽" or 玩家数据[id].召唤兽.数据[内容.序列] == nil or 玩家数据[id].召唤兽.数据[内容.序列].种类 ~= "孩子" and (玩家数据[id].召唤兽.数据[内容.序列].门派法术 == nil or not not 判断是否为空表(玩家数据[id].召唤兽.数据[内容.序列].门派法术)) then
		常规提示(id, "请先选中一个孩子")

		return
	elseif 玩家数据[id].道具.数据[self.临时id] == nil or 孩子书列表[玩家数据[id].道具.数据[self.临时id].名称] == nil and 孩子门派经脉1[临时技能] == nil then
		常规提示(id, "你的召唤兽无法使用该道具")

		return
	end

	if 经脉 ~= nil then
		local mp = string.gsub(经脉, "经脉秘籍", "")

		if 玩家数据[id].召唤兽.数据[内容.序列].门派 ~= mp then
			常规提示(id, "你的#R" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "#Y无法学习#R" .. mp .. "门派秘籍！")

			return
		end

		if 玩家数据[id].召唤兽.数据[内容.序列].奇经八脉 == nil then
			玩家数据[id].召唤兽.数据[内容.序列].奇经八脉 = {}
		end

		if 玩家数据[id].召唤兽.数据[内容.序列].奇经八脉[临时技能] ~= nil then
			常规提示(id, "你的#R" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "#Y已经学过了【#R" .. 临时技能 .. "#Y】，无需重复学习。")

			return
		else
			玩家数据[id].召唤兽.数据[内容.序列].奇经八脉[临时技能] = 1
			玩家数据[id].道具.数据[self.临时id].数量 = 玩家数据[id].道具.数据[self.临时id].数量 or 1
			玩家数据[id].道具.数据[self.临时id].数量 = 玩家数据[id].道具.数据[self.临时id].数量 - 1

			if 玩家数据[id].道具.数据[self.临时id].数量 < 1 then
				玩家数据[id].道具.数据[self.临时id] = nil
				玩家数据[id].角色.数据.道具[内容.编号] = nil
			end

			刷新道具行囊单格(id, "道具", 内容.编号, self.临时id)
			常规提示(id, "恭喜，你的#R" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "#Y学会了【#R" .. 临时技能 .. "#Y】")
			玩家数据[id].召唤兽:刷新信息(内容.序列)

			return
		end
	end

	local 技能列表 = 玩家数据[id].召唤兽.数据[内容.序列].技能

	if #技能列表 < 24 then
		if 孩子技能书数量 <= (玩家数据[id].召唤兽.数据[内容.序列].孩子书 or 0) then
			常规提示(id, "你的#R" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "#Y已经学过#R" .. 孩子技能书数量 .. "#Y本技能书了、无法继续学习。")

			return
		elseif 取列表中是否存在内容(技能列表, 临时技能) == false then
			玩家数据[id].召唤兽.数据[内容.序列].孩子书 = (玩家数据[id].召唤兽.数据[内容.序列].孩子书 or 0) + 1
			玩家数据[id].召唤兽.数据[内容.序列].技能[#技能列表 + 1] = 临时技能
			玩家数据[id].道具.数据[self.临时id].数量 = 玩家数据[id].道具.数据[self.临时id].数量 or 1
			玩家数据[id].道具.数据[self.临时id].数量 = 玩家数据[id].道具.数据[self.临时id].数量 - 1

			if 玩家数据[id].道具.数据[self.临时id].数量 < 1 then
				玩家数据[id].道具.数据[self.临时id] = nil
				玩家数据[id].角色.数据.道具[内容.编号] = nil
			end

			刷新道具行囊单格(id, "道具", 内容.编号, self.临时id)
			常规提示(id, "恭喜，你的#R" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "#Y学会了【#R" .. 临时技能 .. "#Y】")
			玩家数据[id].召唤兽:刷新信息(内容.序列)
		else
			常规提示(id, "你的#R" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "#Y已经学过了【#R" .. 临时技能 .. "#Y】，无需重复学习。")

			return
		end
	else
		常规提示(id, "你的#R" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "#Y技能已经达到上限，无法学习。")

		return
	end
end

function 道具处理类:资质丸使用(连接id, id, 内容)
	self.临时id = 玩家数据[id].角色.数据.道具[内容.编号]

	if 内容.窗口 ~= "召唤兽" or 玩家数据[id].召唤兽.数据[内容.序列] == nil then
		常规提示(id, "请先选中一只召唤兽")

		return
	elseif 玩家数据[id].道具.数据[self.临时id] == nil or 玩家数据[id].道具.数据[self.临时id].名称 ~= "资质丸" then
		常规提示(id, "你的召唤兽无法使用该道具")

		return
	end

	if 资质丸数量 <= (玩家数据[id].召唤兽.数据[内容.序列].资质丸 or 0) then
		常规提示(id, "你的召唤兽当前食用资质丸数量达到上限、无法再食用了。")

		return
	end

	local 资质 = 玩家数据[id].道具.数据[self.临时id].食材
	local 增加数值 = 0

	if 资质 == "攻击资质" then
		增加数值 = qz(取随机数(服务端参数.资质丸.攻击资质下限, 服务端参数.资质丸.攻击资质上限))
	elseif 资质 == "防御资质" then
		增加数值 = qz(取随机数(服务端参数.资质丸.防御资质下限, 服务端参数.资质丸.防御资质上限))
	elseif 资质 == "体力资质" then
		增加数值 = qz(取随机数(服务端参数.资质丸.体力资质下限, 服务端参数.资质丸.体力资质上限))
	elseif 资质 == "法力资质" then
		增加数值 = qz(取随机数(服务端参数.资质丸.法力资质下限, 服务端参数.资质丸.法力资质上限))
	elseif 资质 == "速度资质" then
		增加数值 = qz(取随机数(服务端参数.资质丸.速度资质下限, 服务端参数.资质丸.速度资质上限))
	elseif 资质 == "躲闪资质" then
		增加数值 = qz(取随机数(服务端参数.资质丸.躲闪资质下限, 服务端参数.资质丸.躲闪资质上限))
	elseif 资质 == "成长" then
		增加数值 = qz(取随机数(服务端参数.资质丸.成长下限, 服务端参数.资质丸.成长上限)) / 1000
	else
		return
	end

	if 资质丸消耗寿命 > 0 then
		if 玩家数据[id].召唤兽.数据[内容.序列].种类 == "神兽" then
		elseif 玩家数据[id].召唤兽.数据[内容.序列].寿命 < 资质丸消耗寿命 + 1 then
			常规提示(id, "你的召唤兽寿命不足，无法使用资质丸。")

			return
		else
			玩家数据[id].召唤兽.数据[内容.序列].寿命 = 玩家数据[id].召唤兽.数据[内容.序列].寿命 - 资质丸消耗寿命

			常规提示(id, "#Y你的#R" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "#Y失去了" .. 资质丸消耗寿命 .. "寿命")
		end
	end

	玩家数据[id].召唤兽.数据[内容.序列][资质] = 玩家数据[id].召唤兽.数据[内容.序列][资质] + 增加数值
	玩家数据[id].召唤兽.数据[内容.序列].资质丸 = (玩家数据[id].召唤兽.数据[内容.序列].资质丸 or 0) + 1
	玩家数据[id].道具.数据[self.临时id].数量 = 玩家数据[id].道具.数据[self.临时id].数量 or 1
	玩家数据[id].道具.数据[self.临时id].数量 = 玩家数据[id].道具.数据[self.临时id].数量 - 1

	if 玩家数据[id].道具.数据[self.临时id].数量 < 1 then
		玩家数据[id].道具.数据[self.临时id] = nil
		玩家数据[id].角色.数据.道具[内容.编号] = nil
	end

	刷新道具行囊单格(id, "道具", 内容.编号, self.临时id)
	常规提示(id, "恭喜你的#R" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "#G" .. 资质 .. "#W提升了#R" .. 增加数值 .. "#W点")
	常规提示(id, "食用资质丸成功、你的#R" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "#Y还可食用#R" .. 资质丸数量 - 玩家数据[id].召唤兽.数据[内容.序列].资质丸 .. "#Y个资质丸。")
	玩家数据[id].召唤兽:刷新信息(内容.序列)
end

function 道具处理类:元宵使用(连接id, id, 内容)
	self.临时id = 玩家数据[id].角色.数据.道具[内容.编号]
	local 元宵使用限制 = 10

	if 内容.窗口 ~= "召唤兽" or 玩家数据[id].召唤兽.数据[内容.序列] == nil then
		常规提示(id, "请先选中一只召唤兽")

		return
	elseif 玩家数据[id].道具.数据[self.临时id] == nil or 玩家数据[id].道具.数据[self.临时id].名称 ~= "元宵" then
		常规提示(id, "你的召唤兽无法使用该道具")

		return
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].元宵 == nil then
		玩家数据[id].召唤兽.数据[内容.序列].元宵 = {}
	end

	local 食材 = 玩家数据[id].道具.数据[self.临时id].食材
	local 资质 = "攻击资质"

	if 食材 == "桂花酒酿" then
		资质 = "防御资质"
	elseif 食材 == "细磨豆沙" then
		资质 = "速度资质"
	elseif 食材 == "蜜糖腰果" then
		资质 = "躲闪资质"
	elseif 食材 == "山楂拔丝" then
		资质 = "体力资质"
	elseif 食材 == "滑玉莲蓉" then
		资质 = "法力资质"
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].元宵[食材] == nil then
		玩家数据[id].召唤兽.数据[内容.序列].元宵[食材] = 1
	else
		if 元宵使用限制 <= 玩家数据[id].召唤兽.数据[内容.序列].元宵[食材] then
			常规提示(id, "该召唤兽可食用" .. 食材 .. "元宵数量已经达到了上限！")

			return
		end

		玩家数据[id].召唤兽.数据[内容.序列].元宵[食材] = 玩家数据[id].召唤兽.数据[内容.序列].元宵[食材] + 1
	end

	local 元宵属性列表 = {
		体力资质 = 40,
		躲闪资质 = 20,
		速度资质 = 10,
		法力资质 = 25,
		攻击资质 = 10,
		防御资质 = 10
	}
	local 增加数值 = 元宵属性列表[资质]
	玩家数据[id].召唤兽.数据[内容.序列][资质] = 玩家数据[id].召唤兽.数据[内容.序列][资质] + 增加数值
	玩家数据[id].道具.数据[self.临时id].数量 = 玩家数据[id].道具.数据[self.临时id].数量 - 1

	if 玩家数据[id].道具.数据[self.临时id].数量 < 1 then
		玩家数据[id].道具.数据[self.临时id] = nil
		玩家数据[id].角色.数据.道具[内容.编号] = nil
	end

	刷新道具行囊单格(id, "道具", 内容.编号, self.临时id)
	常规提示(id, "恭喜你的召唤兽#R" .. 资质 .. "#W提升了#R" .. 增加数值 .. "#W点")
	常规提示(id, "食用元宵成功,该召唤兽还可以食用#R" .. 食材 .. "#W元宵" .. 元宵使用限制 - 玩家数据[id].召唤兽.数据[内容.序列].元宵[食材] .. "个")
	玩家数据[id].召唤兽:刷新信息(内容.序列)
end

function 道具处理类:元宵使用1(连接id, id, 内容)
	self.临时id = 玩家数据[id].角色.数据.道具[内容.编号]
	local 元宵使用限制 = 10

	if 内容.窗口 ~= "召唤兽" or 玩家数据[id].召唤兽.数据[内容.序列] == nil then
		常规提示(id, "请先选中一只召唤兽")

		return
	elseif 玩家数据[id].道具.数据[self.临时id] == nil or 玩家数据[id].道具.数据[self.临时id].名称 ~= "元宵" then
		常规提示(id, "你的召唤兽无法使用该道具")

		return
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].元宵 == nil then
		玩家数据[id].召唤兽.数据[内容.序列].元宵 = {}
	end

	local 食材 = 玩家数据[id].道具.数据[self.临时id].食材
	local 资质 = "攻击资质"

	if 食材 == "桂花酒酿" then
		资质 = "防御资质"
	elseif 食材 == "细磨豆沙" then
		资质 = "速度资质"
	elseif 食材 == "蜜糖腰果" then
		资质 = "躲闪资质"
	elseif 食材 == "山楂拔丝" then
		资质 = "体力资质"
	elseif 食材 == "滑玉莲蓉" then
		资质 = "法力资质"
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].元宵[食材] == nil then
		玩家数据[id].召唤兽.数据[内容.序列].元宵[食材] = 1
	else
		if 元宵使用限制 <= 玩家数据[id].召唤兽.数据[内容.序列].元宵[食材] then
			常规提示(id, "该召唤兽可食用" .. 食材 .. "元宵数量已经达到了上限！")

			return
		end

		if 玩家数据[id].角色:扣除积分(5000, 0, 0, "比武积分扣炼兽", 1) == false then
			常规提示(id, "你的比武积分#G不够5000点#,无法继续提升")

			return
		end

		玩家数据[id].召唤兽.数据[内容.序列].元宵[食材] = 玩家数据[id].召唤兽.数据[内容.序列].元宵[食材] + 1
	end

	local 上限 = 玩家数据[id].召唤兽.数据[内容.序列][资质] * 0.005
	local 下限 = 玩家数据[id].召唤兽.数据[内容.序列][资质] * 0.002
	local 增加数值 = math.floor(取随机数(下限, 上限))
	玩家数据[id].召唤兽.数据[内容.序列][资质] = 玩家数据[id].召唤兽.数据[内容.序列][资质] + 增加数值

	if 玩家数据[id].道具.数据[self.临时id].数量 == nil then
		玩家数据[id].道具.数据[self.临时id].数量 = 1
	end

	玩家数据[id].道具.数据[self.临时id].数量 = 玩家数据[id].道具.数据[self.临时id].数量 - 1

	if 玩家数据[id].道具.数据[self.临时id].数量 < 1 then
		玩家数据[id].道具.数据[self.临时id] = nil
		玩家数据[id].角色.数据.道具[内容.编号] = nil
	end

	刷新道具行囊单格(id, "道具", 内容.编号, self.临时id)
	常规提示(id, "恭喜你的召唤兽#R" .. 资质 .. "#W提升了#R" .. 增加数值 .. "#W点")
	常规提示(id, "食用元宵成功,该召唤兽还可以食用#R" .. 食材 .. "#W元宵" .. 元宵使用限制 - 玩家数据[id].召唤兽.数据[内容.序列].元宵[食材] .. "个")
	玩家数据[id].召唤兽:刷新信息(内容.序列)
end

function 道具处理类:炼兽真经使用(连接id, id, 内容)
	self.临时id = 玩家数据[id].角色.数据.道具[内容.编号]
	local 炼兽真经使用限制 = 5

	if 内容.窗口 ~= "召唤兽" or 玩家数据[id].召唤兽.数据[内容.序列] == nil then
		常规提示(id, "请先选中一只召唤兽")

		return
	elseif 玩家数据[id].道具.数据[self.临时id] == nil or 玩家数据[id].道具.数据[self.临时id].名称 ~= "炼兽真经" then
		常规提示(id, "你的召唤兽无法使用该道具")

		return
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 ~= nil and 炼兽真经使用限制 <= 玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 then
		常规提示(id, "该召唤兽已经无法再使用炼兽真经")

		return
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 == nil then
		玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 = 0
	end

	玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 = 玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 + 1
	玩家数据[id].召唤兽.数据[内容.序列].成长 = 玩家数据[id].召唤兽.数据[内容.序列].成长 + 0.01

	if 玩家数据[id].道具.数据[self.临时id].数量 == nil then
		玩家数据[id].道具.数据[self.临时id].数量 = 1
	end

	玩家数据[id].道具.数据[self.临时id].数量 = 玩家数据[id].道具.数据[self.临时id].数量 - 1

	if 玩家数据[id].道具.数据[self.临时id].数量 < 1 then
		玩家数据[id].道具.数据[self.临时id] = nil
		玩家数据[id].角色.数据.道具[内容.编号] = nil
	end

	刷新道具行囊单格(id, "道具", 内容.编号, self.临时id)
	常规提示(id, "#Y恭喜你的召唤兽成长提升了#R0.01#Y点")
	常规提示(id, "#Y炼兽真经使用成长,该召唤兽还可以使用#R" .. 炼兽真经使用限制 - 玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 .. "#Y个炼兽真经")
	玩家数据[id].召唤兽:刷新信息(内容.序列)
end

function 道具处理类:炼兽真经使用1(连接id, id, 内容)
	self.临时id = 玩家数据[id].角色.数据.道具[内容.编号]
	local 炼兽真经使用限制 = 10

	if 内容.窗口 ~= "召唤兽" or 玩家数据[id].召唤兽.数据[内容.序列] == nil then
		常规提示(id, "请先选中一只召唤兽")

		return
	elseif 玩家数据[id].道具.数据[self.临时id] == nil or 玩家数据[id].道具.数据[self.临时id].名称 ~= "炼兽真经" then
		常规提示(id, "你的召唤兽无法使用该道具")

		return
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 ~= nil and 炼兽真经使用限制 <= 玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 then
		常规提示(id, "该召唤兽已经无法再使用炼兽真经")

		return
	end

	if 玩家数据[id].角色:扣除积分(10000, 0, 0, "比武积分扣炼兽", 1) == false then
		常规提示(id, "你的比武积分#G不够10000点#,无法继续提升")

		return
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 == nil then
		玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 = 0
	end

	玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 = 玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 + 1
	玩家数据[id].召唤兽.数据[内容.序列].成长 = 玩家数据[id].召唤兽.数据[内容.序列].成长 + 0.01

	if 玩家数据[id].道具.数据[self.临时id].数量 == nil then
		玩家数据[id].道具.数据[self.临时id].数量 = 1
	end

	玩家数据[id].道具.数据[self.临时id].数量 = 玩家数据[id].道具.数据[self.临时id].数量 - 1

	if 玩家数据[id].道具.数据[self.临时id].数量 < 1 then
		玩家数据[id].道具.数据[self.临时id] = nil
		玩家数据[id].角色.数据.道具[内容.编号] = nil
	end

	刷新道具行囊单格(id, "道具", 内容.编号, self.临时id)
	常规提示(id, "#Y恭喜你的召唤兽成长提升了#R0.01#Y点")
	常规提示(id, "#Y炼兽真经使用成长,该召唤兽还可以使用#R" .. 炼兽真经使用限制 - 玩家数据[id].召唤兽.数据[内容.序列].炼兽真经 .. "#Y个炼兽真经")
	玩家数据[id].召唤兽:刷新信息(内容.序列)
end

function 道具处理类:易经丹使用(连接id, id, 内容)
	self.临时id = 玩家数据[id].角色.数据.道具[内容.编号]

	if 内容.窗口 ~= "召唤兽" or 玩家数据[id].召唤兽.数据[内容.序列] == nil then
		常规提示(id, "请先选中一只召唤兽")

		return
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].种类 == "野怪" then
		常规提示(id, "该物品不能对野怪使用")

		return
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].灵性 < 50 and (玩家数据[id].召唤兽.数据[内容.序列].参战等级 >= 0 or 玩家数据[id].召唤兽.数据[内容.序列].种类 == "神兽") then
		玩家数据[id].召唤兽.数据[内容.序列].灵性 = 玩家数据[id].召唤兽.数据[内容.序列].灵性 + 10
		玩家数据[id].召唤兽.数据[内容.序列].潜力 = 玩家数据[id].召唤兽.数据[内容.序列].潜力 + 20

		常规提示(id, "你的召唤兽" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "服用了一个易经丹,神清气爽,仙气缭绕,修为增加！")

		if 玩家数据[id].召唤兽.数据[内容.序列].灵性 >= 50 then
			常规提示(id, "你的召唤兽" .. 玩家数据[id].召唤兽.数据[内容.序列].模型 .. "已经达到了进阶的条件,可以进阶改变造型了")
		end

		if 玩家数据[id].道具.数据[self.临时id].数量 == nil then
			玩家数据[id].道具.数据[self.临时id].数量 = 1
		end

		if 玩家数据[id].道具.数据[self.临时id].数量 == 1 then
			玩家数据[id].道具.数据[self.临时id] = nil
		else
			玩家数据[id].道具.数据[self.临时id].数量 = 玩家数据[id].道具.数据[self.临时id].数量 - 1
		end

		刷新道具行囊单格(id, "道具", 内容.编号, self.临时id)
	elseif 玩家数据[id].召唤兽.数据[内容.序列].灵性 > 79 then
		local 随机特性 = {
			"复仇",
			"自恋",
			"灵刃",
			"灵法",
			"预知",
			"灵动",
			"瞬击",
			"瞬法",
			"抗法",
			"抗物",
			"阳护",
			"识物",
			"护佑",
			"洞察",
			"弑神",
			"御风",
			"顺势",
			"怒吼",
			"乖巧",
			"力破",
			"识药",
			"争锋",
			"灵断"
		}
		local a = 随机特性[取随机数(1, #随机特性)]
		玩家数据[id].召唤兽.数据[内容.序列].特性 = a
		玩家数据[id].召唤兽.数据[内容.序列].特性几率 = 取随机数(1, 5)

		常规提示(id, "你的召唤兽#R/" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "#Y/领悟了#R/" .. a)

		if 玩家数据[id].道具.数据[self.临时id].数量 == nil then
			玩家数据[id].道具.数据[self.临时id].数量 = 1
		end

		if 玩家数据[id].道具.数据[self.临时id].数量 == 1 then
			玩家数据[id].道具.数据[self.临时id] = nil
			玩家数据[id].角色.数据.道具[内容.编号] = nil
		else
			玩家数据[id].道具.数据[self.临时id].数量 = 玩家数据[id].道具.数据[self.临时id].数量 - 1
		end

		玩家数据[id].召唤兽:刷新信息(内容.序列)
		刷新道具行囊单格(id, "道具", 内容.编号, self.临时id)
	else
		常规提示(id, "召唤兽灵性没有达到80,无法使用该物品，请用清灵净瓶提升灵性！")
		玩家数据[id].召唤兽:刷新信息(内容.序列)
	end
end

function 道具处理类:清灵净瓶处理(连接id, id, 内容)
	self.临时id = 玩家数据[id].角色.数据.道具[内容.编号]
	local 道具格子 = 玩家数据[id].角色:取道具格子()

	if 道具格子 == 0 then
		常规提示(id, "您的道具栏物品已经满啦")

		return
	end

	玩家数据[id].道具.数据[self.临时id].数量 = (玩家数据[id].道具.数据[self.临时id].数量 or 1) - 1

	if 玩家数据[id].道具.数据[self.临时id].数量 < 1 then
		玩家数据[id].道具.数据[self.临时id] = nil
	end

	刷新道具行囊单格(id, "道具", 内容.编号, self.临时id)

	local 随机瓶子 = {
		"高级清灵仙露",
		"中级清灵仙露",
		"初级清灵仙露"
	}
	local a = 随机瓶子[ygsj(#随机瓶子)]

	快捷给道具(id, a, 1, nil, nil, 1)
end

function 道具处理类:清灵仙露处理(连接id, id, 内容)
	self.临时id = 玩家数据[id].角色.数据.道具[内容.编号]

	if 内容.窗口 ~= "召唤兽" or 玩家数据[id].召唤兽.数据[内容.序列] == nil then
		常规提示(id, "请先选中一只召唤兽")

		return
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].种类 == "野怪" then
		常规提示(id, "该物品不能对野怪使用")

		return
	end

	local 临时灵性 = nil

	if 玩家数据[id].道具.数据[self.临时id].灵气 == nil then
		临时灵性 = 1
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].灵性 >= 110 then
		常规提示(id, "该召唤兽已无法再使用清灵仙露")

		return
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].灵性 >= 50 and 玩家数据[id].召唤兽.数据[内容.序列].仙露上限 > 0 then
		if 玩家数据[id].道具.数据[self.临时id].灵气 >= 8 then
			临时灵性 = 取随机数(8, 10)
		elseif 玩家数据[id].道具.数据[self.临时id].灵气 <= 0 then
			临时灵性 = 1
		elseif 玩家数据[id].道具.数据[self.临时id].灵气 >= 1 then
			临时灵性 = 取随机数(玩家数据[id].道具.数据[self.临时id].灵气 - 1, 玩家数据[id].道具.数据[self.临时id].灵气 + 1)
			临时灵性 = math.max(math.min(临时灵性, 9), 1)
		end

		if 玩家数据[id].道具.数据[self.临时id].名称 ~= "高级清灵仙露" and 玩家数据[id].道具.数据[self.临时id].名称 ~= "中级清灵仙露" and 玩家数据[id].道具.数据[self.临时id].名称 ~= "初级清灵仙露" then
			常规提示(id, "抱歉,请正确使用清灵仙露!")

			return
		end

		if 玩家数据[id].召唤兽.数据[内容.序列].灵性 < 100 and 玩家数据[id].召唤兽.数据[内容.序列].灵性 + 临时灵性 >= 100 then
			临时灵性 = 100 - 玩家数据[id].召唤兽.数据[内容.序列].灵性
			玩家数据[id].召唤兽.数据[内容.序列].仙露上限 = 2

			常规提示(id, "你的召唤兽#R" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "#Y灵性达到#P100#Y点、之后只能再使用#R1#Y瓶清灵仙露、请准备好#S灵气达到8#Y的清灵仙露尝试#Z终极一跃#Y！")
		end

		if 玩家数据[id].召唤兽.数据[内容.序列].灵性 + 临时灵性 > 110 then
			临时灵性 = 110 - 玩家数据[id].召唤兽.数据[内容.序列].灵性
		end

		玩家数据[id].召唤兽.数据[内容.序列].灵性 = 玩家数据[id].召唤兽.数据[内容.序列].灵性 + 临时灵性
		玩家数据[id].召唤兽.数据[内容.序列].潜力 = 玩家数据[id].召唤兽.数据[内容.序列].潜力 + 临时灵性 * 2

		常规提示(id, "你的召唤兽" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "增加了#R/" .. 临时灵性 .. "#Y/点灵性,目前灵性#R/" .. 玩家数据[id].召唤兽.数据[内容.序列].灵性 .. "#Y/点。")

		if 玩家数据[id].召唤兽.数据[内容.序列].灵性 >= 110 then
			玩家数据[id].召唤兽.数据[内容.序列].进阶属性.力量 = 取随机数(10, 30)
			玩家数据[id].召唤兽.数据[内容.序列].进阶属性.魔力 = 取随机数(10, 30)
			玩家数据[id].召唤兽.数据[内容.序列].进阶属性.体质 = 取随机数(10, 30)
			玩家数据[id].召唤兽.数据[内容.序列].进阶属性.敏捷 = 取随机数(10, 30)
			玩家数据[id].召唤兽.数据[内容.序列].进阶属性.耐力 = 取随机数(10, 30)

			常规提示(id, "你的召唤兽" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "的进阶属性增加了")
		end

		玩家数据[id].道具.数据[self.临时id].数量 = (玩家数据[id].道具.数据[self.临时id].数量 or 1) - 1

		if 玩家数据[id].道具.数据[self.临时id].数量 < 1 then
			玩家数据[id].道具.数据[self.临时id] = nil
		end

		if 玩家数据[id].召唤兽.数据[内容.序列].仙露上限 <= 2 and 玩家数据[id].召唤兽.数据[内容.序列].灵性 >= 100 then
			玩家数据[id].召唤兽.数据[内容.序列].仙露上限 = 玩家数据[id].召唤兽.数据[内容.序列].仙露上限 - 1
		end

		玩家数据[id].召唤兽:刷新信息(内容.序列)
		刷新道具行囊单格(id, "道具", 内容.编号, self.临时id)
	else
		if 玩家数据[id].召唤兽.数据[内容.序列].仙露上限 < 1 then
			常规提示(id, "该召唤兽已无法再使用清灵仙露!")
		else
			常规提示(id, "你的召唤兽灵性必须达到50以上才能使用清灵仙露!")
		end

		玩家数据[id].召唤兽:刷新信息(内容.序列)
	end
end

function 道具处理类:玉葫灵髓使用(连接id, id, 内容)
	self.临时id = 玩家数据[id].角色.数据.道具[内容.编号]

	if 内容.窗口 ~= "召唤兽" or 玩家数据[id].召唤兽.数据[内容.序列] == nil then
		常规提示(id, "请先选中一只召唤兽")

		return
	end

	if 玩家数据[id].召唤兽.数据[内容.序列].种类 == "野怪" then
		常规提示(id, "该物品不能对野怪使用")

		return
	end

	if (玩家数据[id].召唤兽.数据[内容.序列].灵性 or 0) > 50 and (玩家数据[id].召唤兽.数据[内容.序列].参战等级 >= 0 or 玩家数据[id].召唤兽.数据[内容.序列].种类 == "神兽") then
		玩家数据[id].召唤兽.数据[内容.序列].灵性 = 50
		玩家数据[id].召唤兽.数据[内容.序列].进阶属性.力量 = 0
		玩家数据[id].召唤兽.数据[内容.序列].进阶属性.魔力 = 0
		玩家数据[id].召唤兽.数据[内容.序列].进阶属性.体质 = 0
		玩家数据[id].召唤兽.数据[内容.序列].进阶属性.敏捷 = 0
		玩家数据[id].召唤兽.数据[内容.序列].进阶属性.耐力 = 0
		玩家数据[id].召唤兽.数据[内容.序列].特性 = "无"
		玩家数据[id].召唤兽.数据[内容.序列].仙露上限 = 7

		玩家数据[id].召唤兽:洗点处理1(内容.序列)
		常规提示(id, "你的召唤兽#R/" .. 玩家数据[id].召唤兽.数据[内容.序列].名称 .. "#Y/服用一个玉葫灵髓后,灵性已回归原始！")

		玩家数据[id].道具.数据[self.临时id].数量 = (玩家数据[id].道具.数据[self.临时id].数量 or 1) - 1

		if 玩家数据[id].道具.数据[self.临时id].数量 < 1 then
			玩家数据[id].道具.数据[self.临时id] = nil
		end

		玩家数据[id].召唤兽:刷新信息(内容.序列)
		刷新道具行囊单格(id, "道具", 内容.编号, self.临时id)
	else
		常规提示(id, "召唤兽的灵性必须大于50才能使用玉葫灵髓")
		玩家数据[id].召唤兽:刷新信息(内容.序列)
	end
end

function 道具处理类:取队长权限(id)
	if 玩家数据[id].队伍 == 0 then
		return true
	elseif 玩家数据[id].队伍 ~= 0 and 玩家数据[id].队长 then
		return true
	else
		return false
	end
end

function 道具处理类:加血处理(连接id, id, 加血数值, 加血对象, 动画)
	if 动画 == nil then
		动画 = "加血"
	end

	if 加血对象 == 0 then
		玩家数据[id].角色.数据.气血 = 玩家数据[id].角色.数据.气血 + 加血数值

		if 玩家数据[id].角色.数据.气血上限 < 玩家数据[id].角色.数据.气血 then
			玩家数据[id].角色.数据.气血 = 玩家数据[id].角色.数据.气血上限
		end

		发送数据(连接id, 36, {
			动画 = 动画
		})
		发送数据(连接id, 5506, {
			玩家数据[id].角色:取气血数据()
		})
		地图处理类:加入动画(id, 玩家数据[id].角色.数据.地图数据.编号, 玩家数据[id].角色.数据.地图数据.x, 玩家数据[id].角色.数据.地图数据.y, 动画)
	else
		玩家数据[id].召唤兽:加血处理(加血对象, 加血数值, 连接id, id)
	end
end

function 道具处理类:加伤势处理(连接id, id, 加血数值, 加血对象, 动画)
	if 动画 == nil then
		动画 = "加血"
	end

	if 加血对象 == 0 then
		玩家数据[id].角色.数据.气血上限 = 玩家数据[id].角色.数据.气血上限 + 加血数值

		if 玩家数据[id].角色.数据.最大气血 < 玩家数据[id].角色.数据.气血上限 then
			玩家数据[id].角色.数据.气血上限 = 玩家数据[id].角色.数据.最大气血
		end

		发送数据(连接id, 36, {
			动画 = 动画
		})
		发送数据(连接id, 5506, {
			玩家数据[id].角色:取气血数据()
		})
		地图处理类:加入动画(id, 玩家数据[id].角色.数据.地图数据.编号, 玩家数据[id].角色.数据.地图数据.x, 玩家数据[id].角色.数据.地图数据.y, 动画)
	else
		return
	end
end

function 道具处理类:加魔处理(连接id, id, 加血数值, 加血对象)
	if 加血对象 == 0 then
		玩家数据[id].角色.数据.魔法 = 玩家数据[id].角色.数据.魔法 + 加血数值

		if 玩家数据[id].角色.数据.最大魔法 < 玩家数据[id].角色.数据.魔法 then
			玩家数据[id].角色.数据.魔法 = 玩家数据[id].角色.数据.最大魔法
		end

		发送数据(连接id, 36, {
			动画 = "加蓝"
		})
		发送数据(连接id, 5506, {
			玩家数据[id].角色:取气血数据()
		})
		地图处理类:加入动画(id, 玩家数据[id].角色.数据.地图数据.编号, 玩家数据[id].角色.数据.地图数据.x, 玩家数据[id].角色.数据.地图数据.y, "加蓝")
	else
		玩家数据[id].召唤兽:加蓝处理(加血对象, 加血数值, 连接id, id)
	end
end

function 道具处理类:取飞行限制(id)
	local 地图 = 玩家数据[id].角色.数据.地图数据.编号

	if 玩家数据[id].队伍 ~= 0 and 玩家数据[id].队长 == false then
		常规提示(id, "只有队长才可以使用飞行道具")

		return true
	elseif self:取禁止飞行(id) then
		常规提示(id, "#Y/您当前无法使用飞行道具")

		return true
	elseif 玩家数据[id].角色.数据.等级 < 10 then
		常规提示(id, "#Y/您当前等级太低了无法使用飞行道具")

		return true
	elseif 玩家数据[id].队伍 ~= 0 and 玩家数据[id].队长 then
		local 队伍id = 玩家数据[id].队伍

		for n = 1, #队伍数据[队伍id].成员数据 do
			if self:取禁止飞行(队伍数据[队伍id].成员数据[n]) then
				常规提示(id, format("#G/%s当前不能使用飞行道具", 玩家数据[队伍数据[队伍id].成员数据[n]].角色.数据.名称))

				return true
			end
		end
	end

	return false
end

function 道具处理类:取禁止飞行(id)
	if 玩家数据[id].摊位数据 ~= nil then
		return true
	end

	local 任务id = 玩家数据[id].角色:取任务(110)
	local 地图 = 玩家数据[id].角色.数据.地图数据.编号

	if 任务id ~= 0 and 任务数据[任务id].分类 == 2 then
		return true
	end

	if 玩家数据[id].角色:取任务(208) ~= 0 or 玩家数据[id].角色:取任务(300) ~= 0 or 玩家数据[id].角色.数据.跑商 and 跑商是否限制飞行 or 地图 >= 6009 and 地图 <= 6019 then
		return true
	end

	return false
end

function 道具处理类:给予随机法宝(id)
	local 参数 = ygsj()
	local 名称 = ""
	local 等级 = 0

	if 参数 <= 30 then
		名称 = {
			"碧玉葫芦",
			"五色旗盒",
			"飞剑",
			"拭剑石",
			"金甲仙衣",
			"惊魂铃",
			"嗜血幡",
			"风袋",
			"九黎战鼓",
			"盘龙壁",
			"神行飞剑",
			"汇灵盏",
			"天师符",
			"织女扇"
		}
		等级 = 1
	elseif 参数 <= 65 then
		名称 = {
			"发瘟匣",
			"五彩娃娃",
			"金刚杵",
			"兽王令",
			"摄魂",
			"附灵玉"
		}
		等级 = 2
	else
		名称 = {
			"失心钹",
			"五火神焰印",
			"九幽",
			"普渡",
			"月光宝盒",
			"混元伞",
			"苍白纸人",
			"聚宝盆",
			"乾坤玄火塔",
			"无尘扇",
			"干将莫邪",
			"慈悲",
			"救命毫毛",
			"伏魔天书",
			"镇海珠",
			"奇门五行令",
			"月影"
		}
		等级 = 3
	end

	名称 = 名称[取随机数(1, #名称)]

	self:给予法宝(id, 名称)
end

function 道具处理类:给予随机一级法宝(id)
	local 名称 = ""
	local 等级 = 0
	名称 = {
		"定风珠",
		"雷兽",
		"迷魂灯",
		"幽灵珠",
		"缚妖索",
		"碧玉葫芦",
		"五色旗盒",
		"飞剑",
		"拭剑石",
		"金甲仙衣",
		"惊魂铃",
		"嗜血幡",
		"风袋",
		"九黎战鼓",
		"盘龙壁",
		"神行飞剑",
		"汇灵盏",
		"天师符",
		"织女扇",
		"清心咒"
	}
	等级 = 1
	名称 = 名称[取随机数(1, #名称)]

	self:给予法宝(id, 名称)
end

function 道具处理类:给予随机全法宝(id)
	local 名称 = ""
	local 等级 = 0
	名称 = {
		"碧玉葫芦",
		"五色旗盒",
		"飞剑",
		"拭剑石",
		"金甲仙衣",
		"惊魂铃",
		"嗜血幡",
		"风袋",
		"九黎战鼓",
		"盘龙壁",
		"神行飞剑",
		"汇灵盏",
		"天师符",
		"织女扇",
		"发瘟匣",
		"五彩娃娃",
		"金刚杵",
		"兽王令",
		"摄魂",
		"附灵玉",
		"失心钹",
		"五火神焰印",
		"九幽",
		"普渡",
		"月光宝盒",
		"混元伞",
		"苍白纸人",
		"聚宝盆",
		"乾坤玄火塔",
		"无尘扇",
		"干将莫邪",
		"慈悲",
		"救命毫毛",
		"伏魔天书",
		"镇海珠",
		"奇门五行令",
		"月影",
		"流影云笛",
		"宿幕星河",
		"蟠龙玉璧",
		"落星飞鸿",
		"归元圣印",
		"千斗金樽"
	}
	等级 = 1
	名称 = 名称[取随机数(1, #名称)]

	self:给予法宝(id, 名称)
end

function 道具处理类:给予法宝(id, 名称)
	local 识别码 = id .. "_" .. os.time() .. "_" .. 取随机数(1000, 9999999) .. "_" .. 随机序列
	随机序列 = 随机序列 + 1
	local 道具格子 = 玩家数据[id].角色:取法宝格子()

	if 道具格子 == 0 then
		常规提示(id, "您的法宝栏已经满啦")

		return
	end

	道具id = self:取新编号()
	self.数据[道具id] = 物品类()

	self.数据[道具id]:置对象(名称)

	self.数据[道具id].识别码 = 识别码
	玩家数据[id].角色.数据.法宝[道具格子] = 道具id
	local 道具 = 取物品数据(名称)
	self.数据[道具id].总类 = 1000
	self.数据[道具id].分类 = 道具[3]
	self.数据[道具id].使用 = 道具[5]
	self.数据[道具id].特技 = 道具[6]
	self.数据[道具id].气血 = 0
	self.数据[道具id].魔法 = 取灵气上限(道具[3])
	self.数据[道具id].角色限制 = 道具[7] or 0
	self.数据[道具id].五行 = 取五行()
	self.数据[道具id].伤害 = 道具[8] or 0
	self.数据[道具id].当前经验 = 0
	self.数据[道具id].升级经验 = 法宝经验[self.数据[道具id].分类][1]

	刷新道具行囊单格(id, "法宝", 道具格子, 道具id)
	玩家数据[id].角色:日志记录(format("获得新法宝：名称%s,识别码%s", 名称, 识别码))
	常规提示(id, "#Y你获得了新的法宝#R" .. 名称)
end

必给行囊道具 = {
	情报 = 1,
	帮派银票 = 1
}

function 道具处理类:给予道具(id, 名称, 数量, 参数, 附加, 专用, 其他)
	local 识别码 = id .. "_" .. os.time() .. "_" .. 取随机数(1000, 9999999) .. "_" .. 随机序列
	随机序列 = 随机序列 + 1
	临时道具 = 取物品数据(名称)
	临时道具.总类 = 临时道具[2]
	临时道具.子类 = 临时道具[4]
	临时道具.分类 = 临时道具[3]
	local 行囊类型, 道具格子, 道具数据, 最大数量 = nil
	local 进超级行囊 = false

	if 获取道具模式[id] == nil and 必给行囊道具[名称] == nil then
		行囊类型 = 超级行囊类别(名称, 临时道具.总类)
		道具格子 = 玩家数据[id].角色:取超级行囊格子(行囊类型)
		道具数据 = 玩家数据[id].角色.数据.超级行囊[行囊类型]
		最大数量 = 超级行囊格子数 + 0
		进超级行囊 = true
	else
		道具格子 = 玩家数据[id].角色:取道具格子()

		if 获取道具模式[id] ~= nil and 获取道具模式[id] >= 2 then
			专用 = 1
		end

		道具数据 = 玩家数据[id].角色.数据.道具
		最大数量 = 100
	end

	if 宝石列表1[名称] ~= nil or 名称 == "钨金" or 名称 == "珍珠" then
		local 参数1 = (数量 or 1) + 0
		数量 = (参数 or 1) + 0
		参数 = 参数1
	end

	if 专用 ~= nil then
		专用 = true
	end

	if 道具格子 == 0 then
		常规提示(id, "您的道具栏物品已经满啦")

		return
	else
		local 重置id = 0
		local 叠加允许 = true

		if 行囊类型 ~= "装备" and 行囊类型 ~= "法宝" and type(数量) ~= "table" and 不可叠加道具列表[名称] == nil then
			for n = 1, 最大数量 do
				if 重置id == 0 and 道具数据[n] ~= nil and self.数据[道具数据[n]] ~= nil and self.数据[道具数据[n]].名称 == 名称 and self.数据[道具数据[n]].数量 ~= nil and self.数据[道具数据[n]].可叠加 ~= nil and (默认不可交易道具列表[名称] ~= nil or (self.数据[道具数据[n]].不可交易 or false) == (专用 or false)) then
					叠加允许 = self:取是否可叠加(id, 名称, 道具数据[n], 参数)

					if 叠加允许 == true then
						数量 = 数量 or 1

						if self.数据[道具数据[n]].数量 + 数量 <= 9999 then
							if 道具购买价格列表[id] ~= nil and self.数据[道具数据[n]].购买价格 ~= nil then
								道具购买价格列表[id] = qz((道具购买价格列表[id] * 数量 + self.数据[道具数据[n]].购买价格 * self.数据[道具数据[n]].数量) / (self.数据[道具数据[n]].数量 + 数量))
								self.数据[道具数据[n]].购买价格 = 道具购买价格列表[id] + 0
							end

							self.数据[道具数据[n]].数量 = self.数据[道具数据[n]].数量 + 数量

							if 进超级行囊 then
								刷新超级行囊单格(id, 超级行囊类型列表1[行囊类型], n, 道具数据[n])
							else
								刷新道具行囊单格(id, "道具", n, 道具数据[n])
							end

							重置id = 1

							return
						end
					end
				end
			end
		end

		if 重置id == 0 then
			道具id = self:取新编号()
			self.数据[道具id] = 物品类()

			self.数据[道具id]:置对象(名称)

			道具数据[道具格子] = 道具id
		end

		if 名称 == "鬼谷子" then
			if 参数 ~= nil then
				self.数据[道具id].子类 = 参数
			else
				self.数据[道具id].子类 = 阵法名称[取随机数(2, #阵法名称)]
			end
		elseif 名称 == "点化石" then
			self.数据[道具id].可叠加 = true
			数量 = 数量 or 1

			if 参数 ~= nil then
				self.数据[道具id].附带技能 = 参数
			else
				self.数据[道具id].附带技能 = 取全部高级要诀()
			end
		elseif 名称 == "钟灵石" then
			local 幻化类型 = {
				"心源",
				"狂浪滔天",
				"固若金汤",
				"锐不可当",
				"通真达灵",
				"血气方刚",
				"健步如飞"
			}

			if 参数 ~= nil then
				self.数据[道具id].附加特性 = 参数
			else
				self.数据[道具id].附加特性 = 幻化类型[取随机数(1, #幻化类型)]
			end

			if 数量 ~= nil then
				self.数据[道具id].级别限制 = 数量 + 0
			else
				self.数据[道具id].级别限制 = 1
			end

			self.数据[道具id].可叠加 = true
			数量 = 钟灵石数量[id] or 1
			self.数据[道具id].数量 = 数量 + 0
			钟灵石数量[id] = nil
		elseif 名称 == "特赦令牌" then
			self.数据[道具id].可叠加 = true
		elseif 名称 == "金刚石" or 名称 == "夜光珠" or 名称 == "避水珠" or 名称 == "龙鳞" or 名称 == "定魂珠" or 名称 == "坐骑内丹" or 名称 == "陨铁" or 名称 == "坐骑转型丹" then
			self.数据[道具id].可叠加 = true
			self.数据[道具id].数量 = 数量 or 1
		elseif 名称 == "青花瓷" then
			self.数据[道具id].锦衣 = true
			self.数据[道具id].总类 = 2
			self.数据[道具id].分类 = 15
			self.数据[道具id].子类 = 1
		elseif 名称 == "天眼通符" then
			self.数据[道具id].总类 = 4
			self.数据[道具id].分类 = 2
			self.数据[道具id].子类 = 0
		elseif 名称 == "附魔宝珠" then
			self.数据[道具id].可叠加 = true
		elseif 名称 == "制造指南书" then
			self.数据[道具id].子类 = 数量 + 0
			self.数据[道具id].特效 = 参数
			self.数据[道具id].可叠加 = true
			数量 = 附加 or 1
			self.数据[道具id].数量 = 数量
		elseif 名称 == "灵饰指南书" then
			self.数据[道具id].子类 = 数量[取随机数(1, #数量)] * 10

			if self.数据[道具id].子类 >= 160 then
				self.数据[道具id].子类 = 160
			elseif self.数据[道具id].子类 >= 140 then
				self.数据[道具id].子类 = 140
			elseif self.数据[道具id].子类 >= 120 then
				self.数据[道具id].子类 = 120
			elseif self.数据[道具id].子类 >= 100 then
				self.数据[道具id].子类 = 100
			elseif self.数据[道具id].子类 >= 80 then
				self.数据[道具id].子类 = 80
			elseif self.数据[道具id].子类 >= 60 then
				self.数据[道具id].子类 = 60
			else
				self.数据[道具id].子类 = 60
			end

			if 参数 ~= nil then
				self.数据[道具id].特效 = 参数
			else
				self.数据[道具id].特效 = 随机灵饰[取随机数(1, #随机灵饰)]
			end

			self.数据[道具id].可叠加 = true
			数量 = 附加 or 1
			self.数据[道具id].数量 = 数量
		elseif 名称 == "元灵晶石" then
			self.数据[道具id].子类 = 数量[取随机数(1, #数量)] * 10

			if self.数据[道具id].子类 >= 160 then
				self.数据[道具id].子类 = 160
			elseif self.数据[道具id].子类 >= 140 then
				self.数据[道具id].子类 = 140
			elseif self.数据[道具id].子类 >= 120 then
				self.数据[道具id].子类 = 120
			elseif self.数据[道具id].子类 >= 100 then
				self.数据[道具id].子类 = 100
			elseif self.数据[道具id].子类 >= 80 then
				self.数据[道具id].子类 = 80
			elseif self.数据[道具id].子类 >= 60 then
				self.数据[道具id].子类 = 60
			else
				self.数据[道具id].子类 = 60
			end

			self.数据[道具id].可叠加 = true
			数量 = 附加 or 1
			self.数据[道具id].数量 = 数量
		elseif 名称 == "灵宝图鉴" or 名称 == "神兵图鉴" then
			self.数据[道具id].可叠加 = true
			self.数据[道具id].子类 = tonumber(参数)
		elseif 名称 == "强化符" then
			self.数据[道具id].等级 = 参数
			self.数据[道具id].类型 = 附加
		elseif self.数据[道具id].总类 == 2000 then
			self.数据[道具id].耐久 = 100
		elseif 名称 == "百炼精铁" then
			self.数据[道具id].子类 = 数量 + 0
			self.数据[道具id].可叠加 = true
			数量 = 附加 or 1
			self.数据[道具id].数量 = 数量
		elseif 名称 == "初级清灵仙露" then
			self.数据[道具id].可叠加 = true
			self.数据[道具id].数量 = self.数据[道具id].数量 or 1
			self.数据[道具id].灵气 = tonumber(参数) or 取随机数(2, 4)
		elseif 名称 == "中级清灵仙露" then
			self.数据[道具id].可叠加 = true
			self.数据[道具id].数量 = self.数据[道具id].数量 or 1
			self.数据[道具id].灵气 = tonumber(参数) or 取随机数(4, 6)
		elseif 名称 == "高级清灵仙露" then
			self.数据[道具id].可叠加 = true
			self.数据[道具id].数量 = self.数据[道具id].数量 or 1
			self.数据[道具id].灵气 = tonumber(参数) or 取随机数(6, 8)
		elseif 名称 == "召唤兽内丹" then
			if 参数 == nil then
				self.数据[道具id].附带技能 = 取内丹()
			else
				self.数据[道具id].附带技能 = 参数
			end

			self.数据[道具id].可叠加 = true
			数量 = 数量 or 1
		elseif 名称 == "高级召唤兽内丹" then
			if 参数 == nil then
				self.数据[道具id].附带技能 = 取内丹("高级")
			else
				self.数据[道具id].附带技能 = 参数
			end

			self.数据[道具id].可叠加 = true
			数量 = 数量 or 1
		elseif 名称 == "六艺修行书" then
			self.数据[道具id].可叠加 = true
			数量 = 数量 or 1

			if 参数 == nil then
				self.数据[道具id].附带技能 = 取六艺技能()
			else
				self.数据[道具id].附带技能 = 参数
			end
		elseif 名称 == "魔兽要诀" then
			self.数据[道具id].可叠加 = true
			数量 = 数量 or 1

			if 参数 == nil then
				self.数据[道具id].附带技能 = 取低级要诀()
			else
				self.数据[道具id].附带技能 = 参数
			end
		elseif 参数 == 55 then
			print(名称)

			local 符石数据 = 取物品数据(名称)
			self.数据[道具id].颜色 = 符石数据[20]
			self.数据[道具id].耐久度 = 符石数据[17]
			self.数据[道具id].等级 = 符石数据[16]
			self.数据[道具id][符石数据[18]] = 符石数据[19]

			if 符石数据[21] ~= nil then
				self.数据[道具id][符石数据[21]] = 符石数据[22]
			end
		elseif 名称 == "高级魔兽要诀" then
			self.数据[道具id].可叠加 = true
			数量 = 数量 or 1

			if 参数 == nil then
				self.数据[道具id].附带技能 = 取全部高级要诀()
			else
				self.数据[道具id].附带技能 = 参数
			end
		elseif 名称 == "特殊魔兽要诀" then
			self.数据[道具id].可叠加 = true
			数量 = 数量 or 1

			if 参数 == nil then
				self.数据[道具id].附带技能 = 取特殊要诀()
			else
				self.数据[道具id].附带技能 = 参数
			end
		elseif 名称 == "神兽兽决" then
			self.数据[道具id].可叠加 = true
			数量 = 数量 or 1

			if 参数 == nil then
				self.数据[道具id].附带技能 = 神兽要诀()
			else
				self.数据[道具id].附带技能 = 参数
			end
		elseif 名称 == "帮派银票" then
			self.数据[道具id].初始金额 = 52000
			self.数据[道具id].完成金额 = 180000
			self.数据[道具id].最大金额 = 跑商最大金额
			self.数据[道具id].专用 = "专用"
		elseif 名称 == "天眼珠" or 名称 == "三眼天珠" or 名称 == "九眼天珠" then
			if 参数 ~= nil then
				self.数据[道具id].灵气 = math.min(tonumber(参数), 999)
			else
				self.数据[道具id].灵气 = 60
			end

			if 数量 == nil or 数量 == 1 then
				self.数据[道具id].级别限制 = 65
			else
				self.数据[道具id].级别限制 = math.min(数量 * 10 + 5, 155)
			end

			self.数据[道具id].可叠加 = false
			self.数据[道具id].数量 = nil
		elseif 名称 == "月华露" or 名称 == "九转金丹" or 名称 == "修炼果" then
			if 参数 ~= nil then
				self.数据[道具id].阶品 = 参数
			else
				self.数据[道具id].阶品 = 300
			end

			self.数据[道具id].数量 = 数量 or 1
			self.数据[道具id].可叠加 = true
		elseif 名称 == "金柳露" or 名称 == "超级金柳露" or 名称 == "圣兽丹" or 名称 == "吸附石" then
			self.数据[道具id].数量 = 数量 or 1
			self.数据[道具id].可叠加 = true
		elseif 名称 == "分解符" then
			self.数据[道具id].数量 = 数量 or 1
			self.数据[道具id].可叠加 = true
		elseif 名称 == "雪人鼻子" or 名称 == "雪人帽子" or 名称 == "雪人眼睛" then
			self.数据[道具id].可叠加 = true
		elseif 名称 == "元宵" then
			local 食材 = {
				"芝麻沁香",
				"桂花酒酿",
				"细磨豆沙",
				"蜜糖腰果",
				"蜜糖腰果",
				"山楂拔丝",
				"滑玉莲蓉"
			}
			self.数据[道具id].食材 = 食材[取随机数(1, #食材)]
			self.数据[道具id].数量 = 数量 or 1
		elseif 名称 == "资质丸" then
			local 食材 = ""

			if 参数 == nil then
				食材 = 取资质丸()
			else
				食材 = 参数
			end

			self.数据[道具id].可叠加 = true
			self.数据[道具id].食材 = 食材
			self.数据[道具id].数量 = 数量 or 1
		elseif 名称 == "属性石" then
			local 特效 = ""

			if 参数 == nil then
				特效 = 取属性石()
			else
				特效 = 参数
			end

			self.数据[道具id].数量 = 数量 or 1
			self.数据[道具id].特效 = 特效
			self.数据[道具id].可叠加 = true
		elseif 通灵装备1[名称] ~= nil then
			local 附带技能 = {}

			if 参数 == nil then
				if 附加 ~= nil and 附加 > 1 then
					附带技能 = 取护符技能(名称, 附加)
				else
					附带技能 = 取护符技能(名称)
				end
			else
				附带技能 = 参数
			end

			self.数据[道具id].可叠加 = false
			self.数据[道具id].附带技能 = 附带技能
			self.数据[道具id].次数 = 2
			self.数据[道具id].总类 = 2
			self.数据[道具id].分类 = 9
			self.数据[道具id].子类 = 2
			self.数据[道具id].级别限制 = 0
			self.数据[道具id].等级 = 取护符等级(名称)
		elseif 名称 == "特效石" or 名称 == "特效石碎片" or 名称 == "特技石" then
			local 特效 = ""

			if 参数 == nil then
				if 名称 == "特效石" or 名称 == "特效石碎片" then
					特效 = 取特效()
				else
					特效 = 取特技()
				end
			else
				特效 = 参数
			end

			self.数据[道具id].可叠加 = true
			self.数据[道具id].数量 = 数量 or 1
			self.数据[道具id].特效 = 特效
		elseif 可叠加道具列表[名称] ~= nil then
			self.数据[道具id].可叠加 = true
			self.数据[道具id].数量 = 数量 or 1
		elseif 新加可叠加道具[名称] ~= nil or 打造符列表[名称] ~= nil then
			self.数据[道具id].可叠加 = true
			self.数据[道具id].数量 = 数量 or 1

			if 打造符列表[名称] ~= nil then
				self.数据[道具id].玩家名称 = 玩家数据[id].角色.数据.名称
				self.数据[道具id].主人id = id + 0
				self.数据[道具id].级别限制 = 参数
			elseif 重置丹列表1[名称] ~= nil then
				self.数据[道具id].等级 = 取护符等级(名称)
			elseif 名称 == "召唤兽蛋" then
				self.数据[道具id].特效 = 参数 or "泡泡"
			elseif 名称 == "源生之灵" then
				self.数据[道具id].特效 = 参数 or "神兽雪精灵"
			elseif 孩子书列表[名称] ~= nil then
				self.数据[道具id].附带技能 = 孩子书技能[孩子书列表[名称]]
			elseif string.find(名称, "经脉秘籍") then
				local mp = string.gsub(名称, "经脉秘籍", "")
				self.数据[道具id].附带技能 = 孩子门派经脉[mp][ygsj(#孩子门派经脉[mp])]
			end
		elseif 名称 == "清灵净瓶" then
			self.数据[道具id].可叠加 = true
			self.数据[道具id].数量 = 数量 or 1
		elseif 名称 == "藏宝图" or 名称 == "高级藏宝图" then
			local 随机地图 = {
				1501,
				1506,
				1092,
				1091,
				1110,
				1142,
				1514,
				1174,
				1173,
				1146,
				1208
			}
			local 临时地图 = 随机地图[取随机数(1, #随机地图)]
			self.数据[道具id].地图名称 = 取地图名称(临时地图)
			self.数据[道具id].地图编号 = 临时地图
			local xy = 地图处理类.地图坐标[临时地图]:取随机点()
			self.数据[道具id].x = xy.x
			self.数据[道具id].y = xy.y
		elseif 名称 == "炼妖石" or 名称 == "上古锻造图策" then
			self.数据[道具id].级别限制 = 数量[ygsj(#数量)]
			self.数据[道具id].种类 = 图策范围[ygsj(#图策范围)]
			self.数据[道具id].可叠加 = true
			数量 = tonumber(参数 or 1)
			self.数据[道具id].数量 = 数量 + 0
		elseif 名称 == "珍珠" or 名称 == "钨金" then
			self.数据[道具id].级别限制 = 参数
			self.数据[道具id].可叠加 = true
			self.数据[道具id].数量 = 数量 or 1
		elseif 名称 == "战魄" then
			self.数据[道具id].级别限制 = 160
			self.数据[道具id].可叠加 = true
			self.数据[道具id].数量 = 数量 or 1
		elseif 名称 == "未激活的符石" then
			if 参数 == nil or 参数 == "" or type(参数) == "number" then
				if type(参数) == "number" then
					self.数据[道具id].数量 = 参数
				end

				local 级别 = 数量 or 1
				self.数据[道具id].子类 = 级别

				if 级别 == 1 then
					self.数据[道具id].符石名称 = 一级符石[取随机数(1, #一级符石)]
				elseif 级别 == 2 then
					self.数据[道具id].符石名称 = 二级符石[取随机数(1, #二级符石)]
				elseif 级别 == 3 then
					self.数据[道具id].符石名称 = 三级符石[取随机数(1, #三级符石)]
				else
					self.数据[道具id].子类 = 1
					self.数据[道具id].符石名称 = 一级符石[取随机数(1, #一级符石)]
				end

				local 临时数据 = 取物品数据(self.数据[道具id].符石名称)
				self.数据[道具id].符石属性 = 符石属性加倍(临时数据[21])
				self.数据[道具id].颜色 = 临时数据[20]
			else
				local 临时数据 = 取物品数据(参数)
				self.数据[道具id].符石属性 = 符石属性加倍(临时数据[21])

				if self.数据[道具id].符石属性 ~= nil then
					self.数据[道具id].符石名称 = 参数
					self.数据[道具id].子类 = 临时数据[4]
					self.数据[道具id].颜色 = 临时数据[20]
				else
					self.数据[道具id].符石名称 = 一级符石[取随机数(1, #一级符石)]
					local 临时数据 = 取物品数据(self.数据[道具id].符石名称)
					self.数据[道具id].符石属性 = 符石属性加倍(临时数据[21])
					self.数据[道具id].子类 = 临时数据[4]
					self.数据[道具id].颜色 = 临时数据[20]
				end
			end

			self.数据[道具id].可叠加 = true
			self.数据[道具id].数量 = self.数据[道具id].数量 or 1
		elseif 名称 == "未激活的星石" then
			if 参数 == nil or 参数 == "" then
				self.数据[道具id].子类 = 取随机数(1, 6)
			elseif 参数 == "头盔" then
				self.数据[道具id].子类 = 1
			elseif 参数 == "饰物" then
				self.数据[道具id].子类 = 2
			elseif 参数 == "武器" then
				self.数据[道具id].子类 = 3
			elseif 参数 == "衣甲" then
				self.数据[道具id].子类 = 4
			elseif 参数 == "腰带" then
				self.数据[道具id].子类 = 5
			elseif 参数 == "靴子" then
				self.数据[道具id].子类 = 6
			else
				self.数据[道具id].子类 = 取随机数(1, 6)
			end

			self.数据[道具id].可叠加 = true
			self.数据[道具id].数量 = 数量 or 1
		elseif 名称 == "符石卷轴" then
			self.数据[道具id].可叠加 = true
		elseif 名称 == "怪物卡片" then
			if 变身卡数据[数量] == nil then
				self.数据[道具id].等级 = 数量
				self.数据[道具id].造型 = 变身卡范围[数量][取随机数(1, #变身卡范围[数量])]
			else
				self.数据[道具id].等级 = 变身卡数据[数量].等级
				self.数据[道具id].造型 = 数量
			end

			self.数据[道具id].类型 = 变身卡数据[self.数据[道具id].造型].类型
			self.数据[道具id].单独 = 变身卡数据[self.数据[道具id].造型].单独
			self.数据[道具id].正负 = 变身卡数据[self.数据[道具id].造型].正负
			self.数据[道具id].技能 = 变身卡数据[self.数据[道具id].造型].技能
			self.数据[道具id].属性 = 变身卡数据[self.数据[道具id].造型].属性

			if 参数 ~= nil then
				self.数据[道具id].技能 = 参数
			end

			self.数据[道具id].次数 = self.数据[道具id].等级

			if type(奖励名称[id]) == "table" and 奖励名称[id].变身卡次数 ~= nil then
				self.数据[道具id].次数 = 奖励名称[id].变身卡次数 + 0
				奖励名称[id] = nil
			end
		elseif 临时道具.总类 == 5 and 临时道具.分类 == 4 and 可叠加道具列表[名称] == nil then
			self.数据[道具id].级别限制 = 数量
		elseif 临时道具.总类 == 5 and 临时道具.分类 == 6 then
			self.数据[道具id].级别限制 = 参数
			self.数据[道具id].可叠加 = true
			self.数据[道具id].数量 = 数量 or 1
		elseif 临时道具.总类 == 1 and 临时道具.子类 == 1 and 临时道具.分类 == 4 then
			self.数据[道具id].阶品 = tonumber(参数 or 3)
		elseif 名称 == "金创药" or 名称 == "小还丹" or 名称 == "千年保心丹" or 名称 == "金香玉" or 名称 == "风水混元丹" or 名称 == "蛇蝎美人" or 名称 == "定神香" or 名称 == "佛光舍利子" or 名称 == "九转回魂丹" or 名称 == "五龙丹" or 名称 == "十香返生丸" then
			self.数据[道具id].阶品 = tonumber(参数 or 3)
		end

		if self.数据[道具id].可叠加 and self.数据[道具id].数量 == nil then
			self.数据[道具id].数量 = 数量 or 1
		end
	end

	if 其他 ~= nil and type(其他) == "table" and 其他.数量 ~= nil then
		self.数据[道具id].数量 = 其他.数量 + 0
	end

	self.数据[道具id].识别码 = 识别码

	if 默认不可交易道具列表[self.数据[道具id].名称] ~= nil then
		self.数据[道具id].不可交易 = true
	elseif 默认可交易道具列表[self.数据[道具id].名称] ~= nil then
		self.数据[道具id].不可交易 = nil
	end

	if self.数据[道具id].总类 == 1001 then
		self.数据[道具id].不可交易 = true
		self.数据[道具id].专用 = "专用"
	end

	if 专用 ~= nil then
		self.数据[道具id].专用 = id
		self.数据[道具id].不可交易 = true

		if 获取道具模式[id] == 2 and 道具购买价格列表[id] ~= nil then
			self.数据[道具id].购买价格 = 道具购买价格列表[id] + 0
		end
	end

	if 进超级行囊 then
		刷新超级行囊单格(id, 超级行囊类型列表1[行囊类型], 道具格子, 道具id)
	else
		刷新道具行囊单格(id, "道具", 道具格子, 道具id)
	end
end

function 道具处理类:卸下灵饰(连接id, id, 道具id, 道具格子, 数据)
	玩家数据[id].角色:卸下灵饰(self.数据[玩家数据[id].角色.数据.灵饰[数据.道具]], "不刷新")

	玩家数据[id].角色.数据[数据.类型][道具格子] = 玩家数据[id].角色.数据.灵饰[数据.道具]
	玩家数据[id].角色.数据.灵饰[数据.道具] = nil

	刷新道具行囊单格(id, 数据.类型, 道具格子, 玩家数据[id].角色.数据[数据.类型][道具格子])
	玩家数据[id].角色:刷新信息()
	发送数据(玩家数据[id].连接id, 3503, 玩家数据[id].角色:取装备数据())

	发送数据(玩家数据[id].连接id, 3506, 玩家数据[id].角色:取灵饰数据())
	发送数据(连接id, 5506, {
		玩家数据[id].角色:取气血数据()
	})
	发送数据(玩家数据[id].连接id, 12)
end

function 道具处理类:卸下锦衣(连接id, id, 道具id, 道具格子, 数据)
	玩家数据[id].角色.数据[数据.类型][道具格子] = 玩家数据[id].角色.数据.锦衣[数据.道具]
	玩家数据[id].角色.数据.锦衣[数据.道具] = nil

	if self.数据[玩家数据[id].角色.数据[数据.类型][道具格子]].分类 == 15 then
		玩家数据[id].角色.数据.穿戴锦衣 = nil
	elseif self.数据[玩家数据[id].角色.数据[数据.类型][道具格子]].分类 == 16 then
		玩家数据[id].角色.数据.穿戴足印 = nil
	elseif self.数据[玩家数据[id].角色.数据[数据.类型][道具格子]].分类 == 17 then
		玩家数据[id].角色.数据.穿戴足迹 = nil
	end

	玩家数据[id].角色:刷新信息()
	刷新道具行囊单格(id, 数据.类型, 道具格子, 玩家数据[id].角色.数据[数据.类型][道具格子])
	发送数据(玩家数据[id].连接id, 3530, 玩家数据[id].角色:取锦衣数据())
	发送数据(玩家数据[id].连接id, 12)
	地图处理类:更新锦衣(id, 玩家数据[id].角色:取锦衣数据())
end

function 道具处理类:卸下装备(连接id, id, 数据)
	local 道具格子 = 玩家数据[id].角色:取道具格子1(数据.类型)

	if 道具格子 == 0 then
		常规提示(id, "您的道具栏物品已经满啦")

		return 0
	end

	if 数据.灵饰 then
		self:卸下灵饰(连接id, id, 道具id, 道具格子, 数据)

		return
	end

	if 数据.锦衣 then
		self:卸下锦衣(连接id, id, 道具id, 道具格子, 数据)

		return
	end

	local 道具id = 玩家数据[id].角色.数据.装备[数据.道具]

	if 道具id ~= nil and self.数据[道具id] ~= nil and self.数据[道具id].耐久 > 0 and self.数据[道具id].耐久 ~= nil then
		玩家数据[id].角色:卸下装备(self.数据[道具id], self.数据[道具id].分类, id, "不刷新")
	end

	玩家数据[id].角色.数据.装备[数据.道具] = nil
	玩家数据[id].角色.数据[数据.类型][道具格子] = 道具id

	刷新道具行囊单格(id, 数据.类型, 道具格子, 玩家数据[id].角色.数据[数据.类型][道具格子])
	玩家数据[id].角色:刷新信息()
	发送数据(玩家数据[id].连接id, 3503, 玩家数据[id].角色:取装备数据())

	if 数据.道具 == 3 then
		发送数据(玩家数据[id].连接id, 3505)
		地图处理类:更新武器(id)
	elseif 数据.道具 == 4 and 玩家数据[id].角色.数据.模型 == "影精灵" and self.数据[道具id].子类 == 911 then
		发送数据(玩家数据[id].连接id, 3505)

		if 玩家数据[id].角色.数据.装备[3] ~= nil then
			地图处理类:更新武器(id, self.数据[玩家数据[id].角色.数据.装备[3]])
		else
			地图处理类:更新武器(id)
		end
	end

	发送数据(玩家数据[id].连接id, 12)
end

function 道具处理类:佩戴灵饰(连接id, id, 道具id, 数据)
	local 物品 = 取物品数据(self.数据[道具id].名称)
	local 级别 = 物品[5]
	local 装备条件 = 判断可装备(self.数据[道具id], self.数据[道具id].分类, 数据.角色, id)

	if 装备条件 ~= true then
		常规提示(id, "#Y你当前的角色无法装备此灵饰")

		return 0
	end

	if 玩家数据[id].角色.数据.灵饰[self.数据[道具id].子类] == nil then
		玩家数据[id].角色.数据.灵饰[self.数据[道具id].子类] = 道具id

		玩家数据[id].角色:佩戴灵饰(self.数据[道具id])

		玩家数据[id].角色.数据[数据.类型][数据.道具] = nil
	else
		local 道具id1 = 玩家数据[id].角色.数据.灵饰[self.数据[道具id].子类]

		玩家数据[id].角色:卸下灵饰(self.数据[道具id1], "不刷新")

		玩家数据[id].角色.数据.灵饰[self.数据[道具id].子类] = 道具id

		玩家数据[id].角色:佩戴灵饰(self.数据[道具id])

		玩家数据[id].角色.数据[数据.类型][数据.道具] = 道具id1
	end

	刷新道具行囊单格(id, 数据.类型, 数据.道具, 玩家数据[id].角色.数据[数据.类型][数据.道具])
	发送数据(玩家数据[id].连接id, 3503, 玩家数据[id].角色:取装备数据())

	发送数据(玩家数据[id].连接id, 3506, 玩家数据[id].角色:取灵饰数据())
	发送数据(连接id, 5506, {
		玩家数据[id].角色:取气血数据()
	})
	发送数据(玩家数据[id].连接id, 12)
end

function 道具处理类:佩戴锦衣(连接id, id, 道具id, 数据)
	local 物品 = 取物品数据(self.数据[道具id].名称)

	if self.数据[道具id].分类 == 15 and 玩家数据[id].角色.数据.模型 == "影精灵" then
		常规提示(id, "#Y你当前的角色无法装备锦衣")

		return
	end

	if 玩家数据[id].角色.数据.锦衣[self.数据[道具id].子类] == nil then
		玩家数据[id].角色.数据.锦衣[self.数据[道具id].子类] = 道具id
		玩家数据[id].角色.数据[数据.类型][数据.道具] = nil
	else
		local 道具id1 = 玩家数据[id].角色.数据.锦衣[self.数据[道具id].子类]
		玩家数据[id].角色.数据.锦衣[self.数据[道具id].子类] = 道具id
		玩家数据[id].角色.数据[数据.类型][数据.道具] = 道具id1
	end

	if self.数据[道具id].分类 == 15 then
		玩家数据[id].角色.数据.穿戴锦衣 = self.数据[道具id].名称
	elseif self.数据[道具id].分类 == 16 then
		玩家数据[id].角色.数据.穿戴足印 = self.数据[道具id].名称
	elseif self.数据[道具id].分类 == 17 then
		玩家数据[id].角色.数据.穿戴足迹 = self.数据[道具id].名称
	end

	玩家数据[id].角色:刷新信息()
	刷新道具行囊单格(id, 数据.类型, 数据.道具, 玩家数据[id].角色.数据[数据.类型][数据.道具])
	发送数据(玩家数据[id].连接id, 3530, 玩家数据[id].角色:取锦衣数据())
	地图处理类:更新锦衣(id, 玩家数据[id].角色:取锦衣数据())
	发送数据(玩家数据[id].连接id, 12)
end

function 道具处理类:佩戴装备(连接id, id, 数据)
	local 道具id = 玩家数据[id].角色.数据[数据.类型][数据.道具]

	if self.数据[道具id] ~= nil and self.数据[道具id].灵饰 ~= nil and self.数据[道具id].灵饰 then
		self:佩戴灵饰(连接id, id, 道具id, 数据)

		return
	end

	if self.数据[道具id] ~= nil and self.数据[道具id].锦衣 ~= nil and self.数据[道具id].锦衣 then
		self:佩戴锦衣(连接id, id, 道具id, 数据)

		return
	end

	local 装备条件 = nil

	if self.数据[道具id] == nil or self.数据[道具id].分类 == nil then
		装备条件 = false
	else
		装备条件 = 判断可装备(self.数据[道具id], self.数据[道具id].分类, 数据.角色, id)
	end

	if 装备条件 ~= true then
		常规提示(id, "#Y你当前的角色无法装备此装备")

		return 0
	elseif 玩家数据[id].角色.数据.装备[self.数据[道具id].分类] ~= nil then
		local 道具id1 = 玩家数据[id].角色.数据.装备[self.数据[道具id].分类]

		玩家数据[id].角色:卸下装备(self.数据[道具id1], self.数据[道具id1].分类, id, "不刷新")

		玩家数据[id].角色.数据.装备[self.数据[道具id].分类] = 道具id

		玩家数据[id].角色:穿戴装备(self.数据[道具id], self.数据[道具id].分类, id)

		玩家数据[id].角色.数据[数据.类型][数据.道具] = 道具id1
	else
		玩家数据[id].角色.数据.装备[self.数据[道具id].分类] = 道具id

		玩家数据[id].角色:穿戴装备(self.数据[道具id], self.数据[道具id].分类, id)

		玩家数据[id].角色.数据[数据.类型][数据.道具] = nil
	end

	刷新道具行囊单格(id, 数据.类型, 数据.道具, 玩家数据[id].角色.数据[数据.类型][数据.道具])
	发送数据(玩家数据[id].连接id, 3503, 玩家数据[id].角色:取装备数据())

	if self.数据[道具id].分类 == 3 and 玩家数据[id].角色.数据.装备[3] ~= nil then
		发送数据(玩家数据[id].连接id, 3504)
		地图处理类:更新武器(id, self.数据[玩家数据[id].角色.数据.装备[3]])
	elseif self.数据[道具id].分类 == 4 and 玩家数据[id].角色.数据.装备[4] ~= nil and self.数据[道具id].子类 == 911 and 玩家数据[id].角色.数据.模型 == "影精灵" then
		发送数据(玩家数据[id].连接id, 3504)
		地图处理类:更新武器(id, self.数据[玩家数据[id].角色.数据.装备[3]])
	end

	发送数据(玩家数据[id].连接id, 12)
end

判断可装备 = function(i1, i2, 类型, id, 角色数据)
	if 角色数据 == nil then
		角色数据 = 玩家数据[id].角色.数据
	end

	if i2 > 6 and i1.灵饰 ~= true and 类型 == "主角" then
		常规提示(id, "#Y该装备与你的种族不符")

		return false
	elseif (i2 < 6 or i1.灵饰 == true) and 类型 == "召唤兽" then
		常规提示(id, "#Y/召唤兽不能穿戴该装备")

		return false
	end

	if i1.总类 ~= 2 then
		常规提示(id, "#Y/这个物品不可以装备")

		return false
	end

	if i1.专用 ~= nil and i1.专用 ~= id then
		常规提示(id, "#Y/你无法佩戴他人的专用装备")

		return false
	end

	if i1.限时 ~= nil and i1.限时 < os.time() then
		常规提示(id, "#Y该装备的使用时限到了无法在使用了")

		return false
	end

	if i1.鉴定 == false then
		常规提示(id, "#Y/该装备未鉴定，无法佩戴")

		return false
	end

	if i1.耐久 == nil then
		i1.耐久 = 500
	end

	if i1.耐久 <= 0 and i1.耐久 ~= nil then
		常规提示(id, "#Y/该装备耐久不足，无法穿戴")

		return false
	end

	if i1.修理失败 ~= nil and i1.修理失败 == 3 and i1.耐久 <= 0 then
		常规提示(id, "#Y/该装备因修理失败过度，而无法使用！")

		return false
	end

	local 特效判断 = {}

	if i1.特效 ~= nil then
		特效判断 = 列表模式转换(i1.特效)
	end

	if i1 ~= nil and i1.分类 == i2 then
		if i2 == 1 or i2 == 4 then
			if i1.性别限制 ~= 0 and i1.性别限制 == 角色数据.性别 or i2 == 4 and i1.子类 == 911 and 角色数据.门派 == "九黎城" then
				if i1.子类 == 911 and 角色数据.模型 == "影精灵" and 角色数据.装备[3] ~= nil and 玩家数据[id].道具.数据[角色数据.装备[3]].子类 ~= 910 then
					常规提示(id, "#Y/该武器无法与当前携带的主武器共同装备。")

					return false
				end

				if i1.级别限制 == 0 or 特效判断.无级别限制 ~= nil or i1.级别限制 <= 角色数据.等级 then
					return true
				elseif 特效判断.超级简易 ~= nil and i1.级别限制 <= 角色数据.等级 + 超级简易等级数 then
					return true
				elseif 特效判断.简易 ~= nil and i1.级别限制 <= 角色数据.等级 + 简易等级数 then
					return true
				elseif 角色数据.等级 < i1.级别限制 then
					常规提示(id, "#Y/你的等级不够呀")

					return false
				end
			else
				常规提示(id, "#Y/该装备您无法使用呀")

				return false
			end
		elseif i2 == 2 or i2 == 5 or i2 == 6 or i2 == 10 or i2 == 11 or i2 == 12 or i2 == 13 then
			if i1.级别限制 == 0 or 特效判断.无级别限制 ~= nil or i1.级别限制 <= 角色数据.等级 then
				return true
			elseif 特效判断.超级简易 ~= nil and i1.级别限制 <= 角色数据.等级 + 超级简易等级数 then
				return true
			elseif 特效判断.简易 ~= nil and i1.级别限制 <= 角色数据.等级 + 简易等级数 then
				return true
			elseif tonumber(角色数据.等级) < i1.级别限制 then
				常规提示(id, "#Y/你的等级不够呀")

				return false
			end
		elseif i2 == 3 then
			if i1.角色限制 ~= 0 and (i1.角色限制[1] == 角色数据.模型 or i1.角色限制[1] == "影精灵(九黎城)" and 角色数据.模型 == "影精灵" and 角色数据.门派 == "九黎城" or i1.角色限制[2] == 角色数据.模型 or i1.角色限制[3] == 角色数据.模型 or i1.角色限制[4] == 角色数据.模型) then
				if 角色数据.模型 == "影精灵" and i1.子类 ~= 910 and 角色数据.装备[4] ~= nil and 玩家数据[id].道具.数据[角色数据.装备[4]].子类 == 911 then
					常规提示(id, "#Y/该武器无法与当前携带的副武器共同装备。")

					return false
				end

				if i1.级别限制 == 0 or 特效判断.无级别限制 ~= nil or i1.级别限制 <= 角色数据.等级 then
					return true
				elseif 特效判断.超级简易 ~= nil and i1.级别限制 <= 角色数据.等级 + 超级简易等级数 then
					return true
				elseif 特效判断.简易 ~= nil and i1.级别限制 <= 角色数据.等级 + 简易等级数 then
					return true
				elseif 角色数据.等级 < i1.级别限制 then
					常规提示(id, "#Y/你的等级不够呀")

					return false
				end
			else
				常规提示(id, "#Y/该装备您无法使用呀")

				return false
			end
		end
	end

	return false
end

装备评分 = {
	益气 = 150,
	气血回复效果 = 10,
	金汤 = 120,
	气血 = 1,
	神农 = 500,
	气疗术 = 500,
	专注 = 500,
	急速 = 100,
	永不磨损 = 800,
	简易 = 500,
	固定伤害 = 10,
	超级简易 = 800,
	神佑 = 500,
	凝滞术 = 500,
	再生 = 500,
	魔力 = 10,
	躲避 = 1,
	慈航普渡 = 1000,
	超级愤怒 = 3000,
	命疗术 = 500,
	耐久度 = 0.5,
	超级暴怒 = 3000,
	断玉 = 100,
	修罗咒 = 500,
	无级别限制 = 1300,
	法伤 = 8,
	速度 = 25,
	四海升平 = 1000,
	天衣无缝 = 500,
	猛击 = 1000,
	光辉之甲 = 500,
	心疗术 = 500,
	厚德 = 150,
	凝神诀 = 500,
	必中 = 500,
	气归术 = 500,
	治愈 = 100,
	命归术 = 500,
	魔法 = 1,
	纳敏 = 150,
	会心 = 1000,
	水清诀 = 500,
	聚灵 = 150,
	御气 = 111,
	封印 = 1000,
	冰清诀 = 500,
	弱点击破 = 700,
	防御 = 10,
	冥王爆杀 = 500,
	河东狮吼 = 500,
	破甲术 = 500,
	罗汉金钟 = 1000,
	起死回生 = 500,
	精致 = 500,
	愤怒 = 1500,
	野兽之力 = 500,
	破血狂攻 = 1000,
	治疗能力 = 10,
	啸风诀 = 500,
	暴怒 = 1000,
	绝幻魔音 = 500,
	培元 = 100,
	天命之子 = 200,
	命中 = 3.3,
	破碎无双 = 500,
	体质 = 10,
	神速 = 1000,
	淬力 = 150,
	琴音三叠 = 1000,
	法术防护 = 1000,
	力量 = 10,
	凝气诀 = 500,
	聚怒 = 1000,
	开碑 = 100,
	碎甲术 = 500,
	停陷术 = 500,
	敏捷 = 10,
	固防 = 120,
	耐力 = 10,
	法防 = 7,
	吸血 = 1000,
	笑里藏刀 = 500,
	伤害 = 10,
	抗封 = 1000,
	玉清诀 = 500,
	破空 = 100,
	晶清诀 = 1000,
	物理防护 = 1000,
	回魂咒 = 500,
	铁骨 = 111,
	放下屠刀 = 500,
	灵力 = 15,
	绝杀 = 500,
	固本 = 100,
	削金 = 100,
	太极护法 = 500,
	固伤 = 100,
	圣灵之甲 = 500,
	魔兽之印 = 500,
	流云诀 = 500,
	指挥 = 1000
}

取装备评分 = function(装备数据, 主人名称)
	local 评分 = 0

	for i = 1, #装备基础属性列表 do
		if 装备数据[装备基础属性列表[i]] ~= nil then
			评分 = 评分 + (装备评分[装备基础属性列表[i]] or 0) * 装备数据[装备基础属性列表[i]]
		end
	end

	if 装备数据.特技 ~= nil then
		评分 = 评分 + (装备评分[装备数据.特技] or 0)
	end

	if 装备数据.特效 ~= nil then
		for i = 1, #装备数据.特效 do
			评分 = 评分 + (装备评分[装备数据.特效[i]] or 0)
		end
	end

	if 装备数据.新特效 ~= nil then
		for i = 1, #装备数据.新特效 do
			评分 = 评分 + (装备评分[装备数据.新特效[i]] or 0)
		end
	end

	if 装备数据.超级五行 ~= nil then
		评分 = 评分 + 装备数据.级别限制 * 10
	end

	if 装备数据.超级五行 ~= nil then
		评分 = 评分 + 装备数据.级别限制 * 5
	end

	if 装备数据.染色效果 ~= nil then
		评分 = 评分 + 装备数据.级别限制 * 5
	end

	if 装备数据.特殊附加属性 ~= nil then
		评分 = 评分 + 装备数据.级别限制 * 5
	end

	if 装备数据.百炼效果 ~= nil then
		for i = 1, #装备数据.百炼效果 do
			评分 = 评分 + (装备评分[装备数据.百炼效果[i].类型] or 0) * 装备数据.百炼效果[i].数值 * 1.5
		end
	end

	评分 = qz1(评分)

	刷新装备排行榜(装备数据, 主人名称, 评分)
end

function 道具处理类:加载数据(账号, 数字id)
	self.数字id = 数字id
	self.数据 = table.loadstring(读入文件("data/" .. 账号 .. "/" .. 数字id .. "/道具.txt"))

	for n, v in pairs(self.数据) do
		if self.数据[n].名称 == nil then
			self.数据[n] = nil
		end

		if n ~= nil and self.数据[n] ~= nil and self.数据[n].名称 ~= nil and self.数据[n].名称 == "帮派银票" then
			local 是否存在 = false

			for i = 1, 100 do
				if 玩家数据[数字id].角色.数据.道具[i] ~= nil and 玩家数据[数字id].角色.数据.道具[i] == n then
					是否存在 = true
				end
			end

			if 是否存在 == false then
				self.数据[n] = nil
			end
		end

		if self.数据[n] ~= nil and self.数据[n].总类 == 2 then
			if self.数据[n].分类 == 4 and self.数据[n].子类 == 910 then
				self.数据[n].子类 = 911
				self.数据[n].性别限制 = nil

				if self.数据[n].名称 == "罗喉计都" then
					self.数据[n].角色限制 = {
						"九黎城门派"
					}
				else
					self.数据[n].角色限制 = {
						"影精灵(九黎城)"
					}
				end
			elseif self.数据[n].分类 == 3 and (self.数据[n].子类 == 6 or self.数据[n].子类 == 8) then
				if self.数据[n].子类 == 6 and self.数据[n].角色限制[3] ~= "影精灵" then
					self.数据[n].角色限制[3] = "影精灵"
					self.数据[n].角色限制[4] = "鬼潇潇"
				elseif self.数据[n].子类 == 8 and self.数据[n].角色限制[3] ~= "影精灵" then
					self.数据[n].角色限制[3] = "影精灵"
				end
			end

			if self.数据[n].特效 ~= nil and type(self.数据[n].特效) ~= "table" then
				self.数据[n].特效 = {
					self.数据[n].特效 .. ""
				}
			end

			if self.数据[n].第二特效 ~= nil then
				self.数据[n].特效 = self.数据[n].特效 or {}
				self.数据[n].特效[#self.数据[n].特效 + 1] = self.数据[n].第二特效 .. ""
				self.数据[n].第二特效 = nil
			end

			self.数据[n].实际等级 = nil
			local 特效判断 = {}

			if self.数据[n].特效 ~= nil then
				if 判断是否为空表(self.数据[n].特效) then
					self.数据[n].特效 = nil
				else
					特效判断 = 列表模式转换(self.数据[n].特效)

					取装备实际等级(self.数据[n], 特效判断)
				end
			end
		end

		if self.数据[n] ~= nil and self.数据[n].隐藏 == nil and self.数据[n].总类 == 2 and tonumber(self.数据[n].分类) >= 1 and tonumber(self.数据[n].分类) <= 6 and (self.数据[n].级别限制 or 0) >= 100 then
			取装备评分(self.数据[n], 玩家数据[数字id].角色.数据.名称)
		end
	end
end

function 道具处理类:取新编号()
	for n, v in pairs(self.数据) do
		if self.数据[n] == nil then
			return n
		end
	end

	return #self.数据 + 1
end

function 道具处理类:更新(dt)
end

function 道具处理类:丢弃道具(连接id, id, 数据)
	local 丢弃类型 = 数据.类型

	if self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].名称 == "帮派银票" or self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].总类 == "跑商商品" then
		常规提示(id, "#Y该物品无法丢弃")
		刷新道具行囊单格(id, 数据.类型, 数据.物品, 玩家数据[id].角色.数据[数据.类型][数据.物品])

		return
	elseif self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].锁定 ~= nil then
		常规提示(id, "#Y该物品已锁定、无法丢弃")
		刷新道具行囊单格(id, 数据.类型, 数据.物品, 玩家数据[id].角色.数据[数据.类型][数据.物品])

		return
	end

	if self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].识别码 == nil then
		self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].识别码 = "无法识别"
	end

	玩家数据[id].角色:日志记录("丢弃道具[" .. self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].名称 .. "],道具识别码为" .. self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].识别码)

	self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]] = nil
	玩家数据[id].角色.数据[数据.类型][数据.物品] = nil

	刷新道具行囊单格(id, 数据.类型, 数据.物品, nil)
end

function 道具处理类:出售道具(连接id, id, 数据)
	if 玩家数据[id].角色.数据[数据.类型][数据.物品] == nil then
		常规提示(id, "#Y该物品不存在")

		return
	end

	local 物品名称 = self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].名称
	local 物品数量 = 1
	local 出售价格 = 1
	local 出售总价 = 0

	if self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].名称 == "帮派银票" or self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].锁定 ~= nil then
		常规提示(id, "#Y该物品无法出售")
		刷新道具行囊单格(id, 数据.类型, 数据.物品, 玩家数据[id].角色.数据[数据.类型][数据.物品])

		return
	else
		local jg = 取出售价格(self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]])

		if jg == 0 then
			常规提示(id, "#Y该物品无法出售")
			刷新道具行囊单格(id, 数据.类型, 数据.物品, 玩家数据[id].角色.数据[数据.类型][数据.物品])

			return
		else
			出售价格 = jg + 0

			if self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].数量 ~= nil then
				物品数量 = self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].数量
			end

			出售总价 = 出售价格 * 物品数量

			if self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].识别码 == nil then
				self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].识别码 = "无法识别"
			end

			玩家数据[id].角色:添加银子(出售总价, "系统出售", 1)
			玩家数据[id].角色:日志记录("出售道具[" .. self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].名称 .. "],道具识别码为" .. self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]].识别码)

			self.数据[玩家数据[id].角色.数据[数据.类型][数据.物品]] = nil
			玩家数据[id].角色.数据[数据.类型][数据.物品] = nil

			刷新道具行囊单格(id, 数据.类型, 数据.物品, nil)
		end
	end
end

function 道具处理类:刷新道具行囊(id, 数据)
	if 数据 == "道具" then
		self:索要道具(玩家数据[id].连接id, id)
	elseif 数据 == "法宝" then
		self:索要法宝(玩家数据[id].连接id, id)
	else
		self:索要行囊(玩家数据[id].连接id, id)
	end
end

无法叠加道具列表 = {
	藏宝图 = 1,
	高级藏宝图 = 1
}

function 道具处理类:道具格子互换(连接id, id, 数据)
	if 数据.放置id == nil or 数据.抓取id == nil or 数据.放置类型 == nil or 数据.抓取类型 == nil then
		return
	end

	if 数据.放置类型 == 数据.抓取类型 and 数据.放置id == 数据.抓取id then
		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id])

		return
	end

	if 数据.放置类型 ~= 数据.抓取类型 and 数据.抓取类型 == "法宝" and 玩家数据[id].角色.数据[数据.放置类型][数据.放置id] ~= nil and self.数据[玩家数据[id].角色.数据[数据.放置类型][数据.放置id]].总类 ~= 1000 then
		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id])
		常规提示(id, "#Y法宝栏只可以放入法宝哟")

		return
	elseif 数据.放置类型 ~= 数据.抓取类型 and 玩家数据[id].角色.数据[数据.放置类型][数据.放置id] ~= nil and (self.数据[玩家数据[id].角色.数据[数据.放置类型][数据.放置id]].总类 == "帮派银票" or self.数据[玩家数据[id].角色.数据[数据.放置类型][数据.放置id]].总类 == "跑商商品") then
		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id])
		常规提示(id, "#Y该物品无法放入行囊")

		return
	elseif 数据.放置类型 ~= 数据.抓取类型 and 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id] ~= nil and (self.数据[玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id]].总类 == "帮派银票" or self.数据[玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id]].总类 == "跑商商品") then
		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id])
		常规提示(id, "#Y该物品无法放入道具")

		return
	elseif 数据.放置类型 == "行囊" and self.数据[玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id]].总类 == "帮派银票" then
		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id])
		常规提示(id, "#Y帮派银票无法放入行囊")

		return
	elseif 数据.放置类型 == "法宝" and self.数据[玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id]].总类 ~= 1000 then
		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id])
		常规提示(id, "#Y法宝栏只可以放入法宝哟")

		return
	end

	local 放置id = 玩家数据[id].角色.数据[数据.放置类型][数据.放置id]
	local 抓取id = 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id]

	if 玩家数据[id].角色.数据[数据.放置类型][数据.放置id] == nil then
		玩家数据[id].角色.数据[数据.放置类型][数据.放置id] = 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id]
		玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id] = nil

		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, nil)
		刷新道具行囊单格(id, 数据.放置类型, 数据.放置id, 玩家数据[id].角色.数据[数据.放置类型][数据.放置id])
	else
		self.允许互换 = true

		if 无法叠加道具列表[self.数据[放置id].名称] == nil and 无法叠加道具列表[self.数据[抓取id].名称] == nil and 放置id ~= nil and 抓取id ~= nil and self.数据[抓取id].数量 ~= nil and self.数据[放置id].数量 ~= nil and self.数据[放置id].名称 == self.数据[抓取id].名称 and self.数据[抓取id].数量 < 9999 and self.数据[放置id].数量 < 9999 then
			if 道具整理对比(self.数据[抓取id], self.数据[放置id], 叠加属性) == false then
			elseif self.数据[抓取id].数量 + self.数据[放置id].数量 <= 9999 then
				self.数据[放置id].数量 = self.数据[放置id].数量 + self.数据[抓取id].数量
				self.数据[抓取id] = nil
				玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id] = nil
				self.允许互换 = false

				刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, nil)
				刷新道具行囊单格(id, 数据.放置类型, 数据.放置id, 放置id)
			else
				local 临时数量 = self.数据[放置id].数量 + self.数据[抓取id].数量 - 9999
				self.数据[放置id].数量 = 9999
				self.数据[抓取id].数量 = 临时数量
				self.允许互换 = false

				刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 抓取id)
				刷新道具行囊单格(id, 数据.放置类型, 数据.放置id, 放置id)
			end
		end

		if self.允许互换 then
			玩家数据[id].角色.数据[数据.放置类型][数据.放置id] = 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id]
			玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id] = 放置id

			刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 放置id)
			刷新道具行囊单格(id, 数据.放置类型, 数据.放置id, 抓取id)
		end
	end
end

function 道具处理类:摊位物品转移(id, 数据, 数量)
	local 叠加道具 = 数据

	if 叠加道具.可叠加 == true then
		数量 = 数量 or 1

		for n = 1, 100 do
			if 玩家数据[id].角色.数据.道具[n] ~= nil and self.数据[玩家数据[id].角色.数据.道具[n]].名称 == 叠加道具.名称 and (默认不可交易道具列表[叠加道具.名称] ~= nil or (self.数据[玩家数据[id].角色.数据.道具[n]].不可交易 or false) == (叠加道具.不可交易 or false)) then
				local 叠加判定 = self:取是否可叠加(id, 叠加道具.名称, 玩家数据[id].角色.数据.道具[n], nil, 叠加道具)

				if 叠加判定 then
					if 叠加道具.购买价格 ~= nil and self.数据[玩家数据[id].角色.数据.道具[n]].购买价格 ~= nil then
						self.数据[玩家数据[id].角色.数据.道具[n]].购买价格 = qz((叠加道具.购买价格 * 数量 + self.数据[玩家数据[id].角色.数据.道具[n]].购买价格 * self.数据[玩家数据[id].角色.数据.道具[n]].数量) / (self.数据[玩家数据[id].角色.数据.道具[n]].数量 + 数量))
					end

					self.数据[玩家数据[id].角色.数据.道具[n]].数量 = self.数据[玩家数据[id].角色.数据.道具[n]].数量 + 数量

					刷新道具行囊单格(id, "道具", n, 玩家数据[id].角色.数据.道具[n])

					return true
				end
			end
		end
	end

	return false
end

function 道具处理类:道具加锁解锁(连接id, id, 数据)
	local 类型 = 数据.类型
	local 位置 = 数据.位置
	local 锁定道具 = self.数据[玩家数据[id].角色.数据[类型][位置]]

	if 锁定道具 == nil then
		return
	end

	local 安全码 = f函数.读配置(程序目录 .. "data\\" .. 玩家数据[id].账号 .. "\\账号信息.txt", "账号配置", "安全码")

	if 安全码 == "0" then
		常规提示(id, "#Y您尚未设置账号【#P安全码#Y】、请在当前频道输入#P【安全码+六位数字】#Y设置您的安全码（例：安全码123456）")

		return
	elseif 玩家数据[id].安全码验证 ~= true then
		发送数据(连接id, 142.1)
		常规提示(id, "#Y本操作需要#P验证安全码#Y、请输入安全码验证成功后再尝试#P加锁或解锁物品#Y！")

		return
	end

	if 锁定道具.锁定 == nil then
		锁定道具.锁定 = true

		常规提示(id, "#Y【#P" .. 锁定道具.名称 .. "#Y】加锁成功！")
	else
		锁定道具.锁定 = nil

		常规提示(id, "#Y【#P" .. 锁定道具.名称 .. "#Y】解锁成功！")
	end

	刷新道具行囊单格(id, 类型, 位置, 玩家数据[id].角色.数据[类型][位置])
end

function 道具处理类:行囊物品转移超级行囊(连接id, id, 数据)
	local 类型 = 数据.类型
	local 位置 = 数据.位置
	local 转移道具 = self.数据[玩家数据[id].角色.数据[类型][位置]]

	if 转移道具 == nil then
		return
	end

	行囊类型 = 超级行囊类别(转移道具.名称, 转移道具.总类)
	超级格子 = 玩家数据[id].角色:取超级行囊格子(行囊类型)

	if 超级格子 == 0 then
		常规提示(id, "#Y/你超级行囊#P" .. 行囊类型 .. "栏#Y的空间不够，无法转移道具")

		return
	end

	玩家数据[id].角色.数据.超级行囊[行囊类型][超级格子] = 玩家数据[id].角色.数据[类型][位置] + 0
	玩家数据[id].角色.数据[类型][位置] = nil

	常规提示(id, "#Y【#P" .. 转移道具.名称 .. "#Y】转移到#G超级行囊#S" .. 行囊类型 .. "栏#Y成功！")
	刷新超级行囊单格(id, 超级行囊类型列表1[行囊类型], 超级格子, 玩家数据[id].角色.数据.超级行囊[行囊类型][超级格子])
	刷新道具行囊单格(id, 类型, 位置, nil)
end

function 道具处理类:超级行囊物品转移(连接id, id, 数据)
	local 参数 = 数据.类型
	local 位置 = 数据.位置
	local 类型 = 取超级行囊类型(参数)
	local 叠加 = false
	local 叠加道具 = self.数据[玩家数据[id].角色.数据.超级行囊[类型][位置]]

	if 叠加道具 == nil then
		玩家数据[id].角色.数据.超级行囊[类型][位置] = nil

		return
	end

	local 放置参数 = {}
	local 法宝 = false

	if 叠加道具.可叠加 == true then
		for n = 1, 100 do
			if 玩家数据[id].角色.数据.道具[n] ~= nil and self.数据[玩家数据[id].角色.数据.道具[n]].名称 == 叠加道具.名称 and (默认不可交易道具列表[叠加道具.名称] ~= nil or (self.数据[玩家数据[id].角色.数据.道具[n]].不可交易 or false) == (叠加道具.不可交易 or false)) then
				local 叠加判定 = self:取是否可叠加(id, 叠加道具.名称, 玩家数据[id].角色.数据.道具[n], nil, 叠加道具)

				if 叠加判定 then
					if 叠加道具.购买价格 ~= nil and self.数据[玩家数据[id].角色.数据.道具[n]].购买价格 ~= nil then
						self.数据[玩家数据[id].角色.数据.道具[n]].购买价格 = qz((叠加道具.购买价格 * (叠加道具.数量 or 1) + self.数据[玩家数据[id].角色.数据.道具[n]].购买价格 * self.数据[玩家数据[id].角色.数据.道具[n]].数量) / (self.数据[玩家数据[id].角色.数据.道具[n]].数量 + (叠加道具.数量 or 1)))
					end

					self.数据[玩家数据[id].角色.数据.道具[n]].数量 = self.数据[玩家数据[id].角色.数据.道具[n]].数量 + (叠加道具.数量 or 1)
					叠加 = true
					放置参数 = {
						"道具",
						n + 0,
						玩家数据[id].角色.数据.道具[n]
					}

					break
				end
			end
		end
	elseif 叠加道具.总类 == 1000 then
		法宝 = true
	end

	local 放置id = 0

	if 叠加 == false then
		if 法宝 then
			放置id = 玩家数据[id].角色:取法宝格子()

			if 放置id == 0 then
				常规提示(id, "#Y法宝栏格子已满！")

				return
			end

			放置参数 = {
				"法宝",
				放置id
			}
			玩家数据[id].角色.数据.法宝[放置id] = 玩家数据[id].角色.数据.超级行囊[类型][位置]

			常规提示(id, "#Y【#P" .. 叠加道具.名称 .. "#Y】转移到#S法宝栏#Y成功！")
		else
			local 行囊 = false
			放置id = 玩家数据[id].角色:取道具格子()

			if 放置id == 0 then
				放置id = 玩家数据[id].角色:取道具格子1("行囊")

				if 放置id == 0 then
					常规提示(id, "#Y道具行囊已满、请先整理出空格子！")

					return
				else
					行囊 = true
				end
			end

			if not 行囊 then
				放置参数 = {
					"道具",
					放置id
				}
				玩家数据[id].角色.数据.道具[放置id] = 玩家数据[id].角色.数据.超级行囊[类型][位置]

				常规提示(id, "#Y【#P" .. 叠加道具.名称 .. "#Y】转移到#S道具栏#Y成功！")
			else
				放置参数 = {
					"行囊",
					放置id
				}
				玩家数据[id].角色.数据.行囊[放置id] = 玩家数据[id].角色.数据.超级行囊[类型][位置]

				常规提示(id, "#Y【#P" .. 叠加道具.名称 .. "#Y】转移到#S行囊栏#Y成功！")
			end
		end
	end

	玩家数据[id].角色.数据.超级行囊[类型][位置] = nil

	刷新超级行囊单格(id, 超级行囊类型列表1[类型], 位置, nil)
	刷新道具行囊单格(id, 放置参数[1], 放置参数[2], 放置参数[3] or 玩家数据[id].角色.数据[放置参数[1]][放置id])
end

刷新仓库单格 = function(id, 页数, 格子, 数据)
	local 道具数据 = {}

	if 数据 == nil or 玩家数据[id].道具.数据[数据] == nil then
		玩家数据[id].角色.数据.道具仓库[页数][格子] = nil
	else
		玩家数据[id].角色.数据.道具仓库[页数][格子] = 数据 + 0
	end

	道具数据 = 玩家数据[id].道具.数据[数据]

	发送数据(玩家数据[id].连接id, 3524.1, {
		页数 = 页数,
		格子 = 格子,
		数据 = 道具数据
	})
end

刷新道具行囊单格 = function(id, 类型, 格子, 数据)
	local 道具数据 = {}

	if 数据 == nil or 玩家数据[id].道具.数据[数据] == nil then
		玩家数据[id].角色.数据[类型][格子] = nil
	else
		玩家数据[id].角色.数据[类型][格子] = 数据 + 0
	end

	道具数据 = 玩家数据[id].道具.数据[数据]

	if 道具数据 ~= nil and 道具数据.总类 == 2 and 道具数据.特效 ~= nil and 判断是否为空表(道具数据.特效) then
		道具数据.特效 = nil
	end

	发送数据(玩家数据[id].连接id, 3502.3, {
		类型 = 类型,
		格子 = 格子,
		内容 = 道具数据
	})
end

刷新道具行囊多格 = function(id, 类型, 格子列表, 道具列表)
	if 玩家数据[id] == nil or #格子列表 ~= #道具列表 then
		return
	end

	local aa = {}
	local 道具数据 = 玩家数据[id].道具.数据

	for i = 1, #道具列表 do
		aa[i] = 道具数据[道具列表[i]]

		if aa[i] == nil then
			玩家数据[id].角色.数据[类型][格子列表[i]] = nil
		else
			玩家数据[id].角色.数据[类型][格子列表[i]] = 道具列表[i] + 0
		end

		if aa[i] ~= nil and aa[i].总类 == 2 and aa[i].特效 ~= nil and 判断是否为空表(aa[i].特效) then
			aa[i].特效 = nil
		end
	end

	发送数据(玩家数据[id].连接id, 3502.4, {
		类型 = 类型,
		格子列表 = 格子列表,
		内容 = aa
	})
end

刷新超级行囊单格 = function(id, 类型, 格子, 数据)
	local 道具数据 = {}

	if 数据 == nil or 玩家数据[id].道具.数据[数据] == nil then
		玩家数据[id].角色.数据.超级行囊[超级行囊类型列表[类型]][格子] = nil
	else
		玩家数据[id].角色.数据.超级行囊[超级行囊类型列表[类型]][格子] = 数据 + 0
	end

	道具数据 = 玩家数据[id].道具.数据[数据]

	if 道具数据 ~= nil and 道具数据.总类 == 2 and 道具数据.特效 ~= nil and 判断是否为空表(道具数据.特效) then
		道具数据.特效 = nil
	end

	发送数据(玩家数据[id].连接id, 3502.2, {
		类型 = 类型,
		格子 = 格子,
		内容 = 道具数据
	})
end

function 道具处理类:道具拆分(连接id, id, 数据)
	local 放置id = 玩家数据[id].角色:取道具格子()

	if 放置id == 0 then
		常规提示(id, "#Y道具行囊已满,无法拆分")

		return
	end

	local 编号 = 玩家数据[id].角色.数据.道具[数据.道具编号]
	local 道具数据 = 玩家数据[id].道具.数据[编号]
	local 道具数据1 = DeepCopy(道具数据)
	local 道具id = self:取新编号()
	local 拆分数量 = 数据.数量

	if 编号 == nil or 道具数据 == nil or 道具数据.可叠加 ~= true or 道具数据.数量 == nil or 道具数据.数量 <= 1 then
		常规提示(id, "#Y拆分道具数据错误、请不要移动拆分道具的位置！")

		return
	elseif 道具数据.数量 <= 拆分数量 then
		常规提示(id, "#Y该道具数量不足，无法拆分！")

		return
	end

	道具数据.数量 = 道具数据.数量 - 拆分数量
	玩家数据[id].角色.数据.道具[放置id] = 道具id
	道具数据1.数量 = 拆分数量
	道具数据1.认证码 = id .. "_" .. os.time() .. "_" .. 取随机数(1000, 9999999) .. "_" .. 随机序列
	随机序列 = 随机序列 + 1
	玩家数据[id].道具.数据[道具id] = 道具数据1

	常规提示(id, "#Y道具拆分成功！")
	刷新道具行囊多格(id, "道具", {
		数据.道具编号,
		放置id
	}, {
		编号,
		道具id
	})
end

function 道具处理类:道具格子互换1(连接id, id, 数据)
	local 放置id = 玩家数据[id].角色:取道具格子1(数据.放置类型)

	if 放置id == 0 then
		常规提示(id, "#Y" .. 数据.放置类型 .. "已满！")
		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id])

		return
	end

	if 数据.放置类型 == 数据.抓取类型 then
		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id])

		return
	end

	if 玩家数据[id].角色.数据[数据.抓取类型] == nil or 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id] == nil or self.数据[玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id]] == nil then
		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id])

		return
	end

	if 数据.放置类型 ~= "道具" and 数据.放置类型 ~= "行囊" and 数据.放置类型 ~= "法宝" then
		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id])

		return
	end

	if 数据.抓取类型 ~= "道具" and 数据.抓取类型 ~= "行囊" and 数据.抓取类型 ~= "法宝" then
		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id])

		return
	end

	if 数据.放置类型 == "法宝" and self.数据[玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id]].总类 ~= 1000 then
		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id])
		常规提示(id, "#Y法宝栏只可以放入法宝哟")

		return
	end

	if 数据.放置类型 == "行囊" and (self.数据[玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id]].总类 == "帮派银票" or self.数据[玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id]].总类 == "跑商商品") then
		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id])
		常规提示(id, "#Y帮派银票以及跑商物品无法放入行囊")

		return
	end

	if 放置id ~= 0 then
		玩家数据[id].角色.数据[数据.放置类型][放置id] = 玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id]
		玩家数据[id].角色.数据[数据.抓取类型][数据.抓取id] = nil

		刷新道具行囊单格(id, 数据.抓取类型, 数据.抓取id, nil)
		刷新道具行囊单格(id, 数据.放置类型, 放置id, 玩家数据[id].角色.数据[数据.放置类型][放置id])
	end
end

function 道具处理类:索要法宝(连接id, id, 获取)
	self.发送数据 = {
		法宝 = {},
		佩戴 = {}
	}

	if 玩家数据[id].角色.数据.道具行囊打开.法宝 == nil or 获取 == true then
		玩家数据[id].角色.数据.道具行囊打开.法宝 = 1
		self.发送数据.法宝.获取过 = true

		for n = 1, 100 do
			if 玩家数据[id].角色.数据.法宝[n] ~= nil then
				if self.数据[玩家数据[id].角色.数据.法宝[n]] == nil then
					玩家数据[id].角色.数据.法宝[n] = nil
				else
					self.发送数据.法宝[n] = table.loadstring(table.tostring(self.数据[玩家数据[id].角色.数据.法宝[n]]))
				end
			end
		end
	end

	for n = 1, 4 do
		if 玩家数据[id].角色.数据.法宝佩戴[n] ~= nil then
			self.发送数据.佩戴[n] = table.loadstring(table.tostring(self.数据[玩家数据[id].角色.数据.法宝佩戴[n]]))
		end
	end

	发送数据(连接id, 3527, self.发送数据)
end

function 道具处理类:索要道具(连接id, id, 数据)
	self.发送数据 = {
		道具 = {}
	}
	local 道具列表 = {}

	if 玩家数据[id].角色.数据.道具行囊打开.道具 == nil or 数据 == true or type(数据) == "table" and 数据.获取 == true then
		玩家数据[id].角色.数据.道具行囊打开.道具 = 1
		self.发送数据.道具.获取过 = true

		for n = 1, 100 do
			if 玩家数据[id].角色.数据.道具[n] ~= nil then
				local 道具编号 = 玩家数据[id].角色.数据.道具[n]

				if 道具列表[道具编号] == nil then
					道具列表[道具编号] = 1

					if self.数据[道具编号] ~= nil then
						self.发送数据.道具[n] = table.loadstring(table.tostring(self.数据[道具编号]))
					else
						玩家数据[id].角色.数据.道具[n] = nil
					end
				else
					玩家数据[id].角色.数据.道具[n] = nil
				end
			end
		end
	end

	if type(数据) == "table" and 数据.不打开 ~= nil then
		self.发送数据.不打开 = true
	end

	self.发送数据.活力 = 玩家数据[id].角色.数据.活力
	self.发送数据.体力 = 玩家数据[id].角色.数据.体力
	玩家数据[id].角色.数据.银子 = qz(玩家数据[id].角色.数据.银子)
	self.发送数据.银子 = 玩家数据[id].角色.数据.银子
	玩家数据[id].角色.数据.储备 = qz(玩家数据[id].角色.数据.储备)
	self.发送数据.储备 = 玩家数据[id].角色.数据.储备
	玩家数据[id].角色.数据.存银 = qz(玩家数据[id].角色.数据.存银)
	self.发送数据.存银 = 玩家数据[id].角色.数据.存银
	self.发送数据.总格 = 100

	发送数据(连接id, 3501, self.发送数据)
end

function 道具处理类:索要道具1(id)
	self.发送数据 = {
		道具 = {}
	}
	local 道具列表 = {}

	for n = 1, 100 do
		if 玩家数据[id].角色.数据.道具[n] ~= nil then
			local 道具编号 = 玩家数据[id].角色.数据.道具[n]

			if 道具列表[道具编号] == nil then
				道具列表[道具编号] = 1

				if self.数据[玩家数据[id].角色.数据.道具[n]] == nil then
					玩家数据[id].角色.数据.道具[n] = nil
				else
					self.发送数据.道具[n] = table.loadstring(table.tostring(self.数据[玩家数据[id].角色.数据.道具[n]]))
				end
			else
				玩家数据[id].角色.数据.道具[n] = nil
			end
		end
	end

	self.发送数据.体力 = 玩家数据[id].角色.数据.体力
	self.发送数据.银子 = 玩家数据[id].角色.数据.银子
	self.发送数据.储备 = 玩家数据[id].角色.数据.储备
	self.发送数据.存银 = 玩家数据[id].角色.数据.存银

	return self.发送数据
end

function 道具处理类:索要道具2(id)
	self.发送数据 = {
		道具 = {}
	}
	local 道具列表 = {}

	for n = 1, 100 do
		if 玩家数据[id].角色.数据.道具[n] ~= nil then
			local 道具编号 = 玩家数据[id].角色.数据.道具[n]

			if 道具列表[道具编号] == nil then
				道具列表[道具编号] = 1

				if self.数据[玩家数据[id].角色.数据.道具[n]] == nil then
					玩家数据[id].角色.数据.道具[n] = nil
				else
					self.发送数据.道具[n] = table.loadstring(table.tostring(self.数据[玩家数据[id].角色.数据.道具[n]]))
				end
			else
				玩家数据[id].角色.数据.道具[n] = nil
			end
		end
	end

	return self.发送数据
end

function 道具处理类:索要道具3(id)
	self.发送数据 = {
		道具 = {}
	}
	local 道具列表 = {}

	for n = 1, 100 do
		if 玩家数据[id].角色.数据.道具[n] ~= nil and self.数据[玩家数据[id].角色.数据.道具[n]] ~= nil then
			local 道具编号 = 玩家数据[id].角色.数据.道具[n]

			if 道具列表[道具编号] == nil then
				道具列表[道具编号] = 1
				self.发送数据.道具[n] = table.loadstring(table.tostring(self.数据[玩家数据[id].角色.数据.道具[n]]))
			else
				玩家数据[id].角色.数据.道具[n] = nil
			end
		end
	end

	self.发送数据.体力 = 玩家数据[id].角色.数据.体力
	self.发送数据.银子 = 玩家数据[id].角色.数据.银子
	self.发送数据.储备 = 玩家数据[id].角色.数据.储备
	self.发送数据.存银 = 玩家数据[id].角色.数据.存银

	return self.发送数据
end

function 道具处理类:索要道具4(id, 类型)
	self.发送数据 = {
		道具 = {}
	}

	for n = 1, 100 do
		if 玩家数据[id].角色.数据[类型][n] ~= nil then
			if self.数据[玩家数据[id].角色.数据[类型][n]] == nil then
				玩家数据[id].角色.数据[类型][n] = nil
			else
				self.发送数据.道具[n] = table.loadstring(table.tostring(self.数据[玩家数据[id].角色.数据[类型][n]]))
			end
		end
	end

	self.发送数据.数据类型 = 类型

	return self.发送数据
end

function 道具处理类:索要道具5(id, 类型)
	self.发送数据 = {
		道具 = {}
	}
	local 道具数量 = 20

	if 类型 == "道具" then
		道具数量 = 100
	end

	if 玩家数据[id].角色.数据.道具行囊打开[类型] == nil then
		玩家数据[id].角色.数据.道具行囊打开[类型] = 1
		self.发送数据.道具.获取过 = true

		for n = 1, 道具数量 do
			if 玩家数据[id].角色.数据[类型][n] ~= nil then
				if self.数据[玩家数据[id].角色.数据[类型][n]] == nil then
					玩家数据[id].角色.数据[类型][n] = nil
				else
					self.发送数据.道具[n] = table.loadstring(table.tostring(self.数据[玩家数据[id].角色.数据[类型][n]]))
				end
			end
		end
	end

	self.发送数据.数据类型 = 类型

	return self.发送数据
end

function 道具处理类:重置法宝回合(id)
	for n = 1, 100 do
		if 玩家数据[id].角色.数据.法宝[n] ~= nil then
			if self.数据[玩家数据[id].角色.数据.法宝[n]] == nil then
				玩家数据[id].角色.数据.法宝[n] = nil
			else
				self.数据[玩家数据[id].角色.数据.法宝[n]].回合 = nil
			end
		end
	end
end

function 道具处理类:索要法宝2(id, 回合)
	self.发送数据 = {
		道具 = {}
	}

	for n = 1, 100 do
		if 玩家数据[id].角色.数据.法宝[n] ~= nil then
			if self.数据[玩家数据[id].角色.数据.法宝[n]] == nil then
				玩家数据[id].角色.数据.法宝[n] = nil
			else
				self.发送数据.道具[n] = table.loadstring(table.tostring(self.数据[玩家数据[id].角色.数据.法宝[n]]))

				if self.发送数据.道具[n].回合 ~= nil then
					if self.发送数据.道具[n].回合 <= 回合 then
						self.发送数据.道具[n].回合 = nil
					else
						self.发送数据.道具[n].回合 = self.发送数据.道具[n].回合 - 回合
					end
				end
			end
		end
	end

	self.发送数据.银子 = 玩家数据[id].角色.数据.银子
	self.发送数据.储备 = 玩家数据[id].角色.数据.储备
	self.发送数据.存银 = 玩家数据[id].角色.数据.存银

	return self.发送数据
end

function 道具处理类:索要法宝1(id, 回合)
	self.发送数据 = {
		道具 = {}
	}

	for n = 1, 100 do
		if 玩家数据[id].角色.数据.法宝[n] ~= nil then
			if self.数据[玩家数据[id].角色.数据.法宝[n]] == nil then
				玩家数据[id].角色.数据.法宝[n] = nil
			else
				self.发送数据.道具[n] = table.loadstring(table.tostring(self.数据[玩家数据[id].角色.数据.法宝[n]]))

				if self.发送数据.道具[n].回合 ~= nil then
					if self.发送数据.道具[n].回合 <= 回合 then
						self.发送数据.道具[n].回合 = nil
					else
						self.发送数据.道具[n].回合 = self.发送数据.道具[n].回合 - 回合
					end
				end
			end
		end
	end

	return self.发送数据
end

function 道具处理类:索要仓库道具(id, 页, 获取)
	self.发送数据 = {
		道具 = {}
	}

	if 玩家数据[id].角色.数据.道具仓库打开[页] == nil or 获取 == true then
		玩家数据[id].角色.数据.道具仓库打开[页] = 1
		self.发送数据.道具.获取过 = true

		for n = 1, 20 do
			if 玩家数据[id].角色.数据.道具仓库[页][n] ~= nil then
				if self.数据[玩家数据[id].角色.数据.道具仓库[页][n]] == nil then
					玩家数据[id].角色.数据.道具仓库[页][n] = nil
				else
					self.发送数据.道具[n] = table.loadstring(table.tostring(self.数据[玩家数据[id].角色.数据.道具仓库[页][n]]))
				end
			end
		end
	end

	return self.发送数据
end

function 道具处理类:索要超级行囊(连接id, id, 类型, a, 获取)
	local aa = {}
	self.发送数据 = {}

	if 玩家数据[id].角色.数据.超级行囊 == nil then
		玩家数据[id].角色.数据.超级行囊 = {}
	end

	if 玩家数据[id].角色.数据.超级行囊[类型] == nil then
		玩家数据[id].角色.数据.超级行囊[类型] = {}
	end

	if 玩家数据[id].角色.数据.超级行囊打开[类型] == nil or 获取 == true then
		玩家数据[id].角色.数据.超级行囊打开[类型] = 1
		self.发送数据.获取过 = true
	end

	if self.发送数据.获取过 == true then
		for n = 1, 超级行囊格子数 do
			if 玩家数据[id].角色.数据.超级行囊[类型][n] ~= nil then
				if aa[玩家数据[id].角色.数据.超级行囊[类型][n]] == nil then
					aa[玩家数据[id].角色.数据.超级行囊[类型][n]] = 1

					if self.数据[玩家数据[id].角色.数据.超级行囊[类型][n]] ~= nil then
						self.发送数据[n] = self.数据[玩家数据[id].角色.数据.超级行囊[类型][n]]
					else
						玩家数据[id].角色.数据.超级行囊[类型][n] = nil
					end
				else
					玩家数据[id].角色.数据.超级行囊[类型][n] = nil
				end
			end
		end
	end

	self.发送数据.类型 = a
	self.发送数据.银子 = 玩家数据[id].角色.数据.银子
	self.发送数据.储备 = 玩家数据[id].角色.数据.储备
	self.发送数据.存银 = 玩家数据[id].角色.数据.存银

	发送数据(连接id, 3502.1, self.发送数据)
end

function 道具处理类:索要行囊(连接id, id, 获取)
	self.发送数据 = {
		道具 = {}
	}

	if 玩家数据[id].角色.数据.道具行囊打开.行囊 == nil or 获取 == true then
		玩家数据[id].角色.数据.道具行囊打开.行囊 = 1
		self.发送数据.道具.获取过 = true

		for n = 1, 20 do
			if 玩家数据[id].角色.数据.行囊[n] ~= nil then
				if self.数据[玩家数据[id].角色.数据.行囊[n]] == nil then
					玩家数据[id].角色.数据.行囊[n] = nil
				else
					self.发送数据.道具[n] = table.loadstring(table.tostring(self.数据[玩家数据[id].角色.数据.行囊[n]]))
				end
			end
		end
	end

	self.发送数据.活力 = 玩家数据[id].角色.数据.活力
	self.发送数据.体力 = 玩家数据[id].角色.数据.体力
	self.发送数据.银子 = 玩家数据[id].角色.数据.银子
	self.发送数据.储备 = 玩家数据[id].角色.数据.储备
	self.发送数据.存银 = 玩家数据[id].角色.数据.存银

	发送数据(连接id, 3502, self.发送数据)
end

function 道具处理类:帮派点修处理(连接id, 数字id, 数据)
	local 消耗银子 = 0
	local 帮派编号 = 玩家数据[数字id].角色.数据.帮派数据.编号
	local 帮派资材 = 帮派数据[帮派编号].帮派资材.当前
	local 次数 = 数据.次数 + 0

	if 数据.修炼项目 == "攻击修炼" or 数据.修炼项目 == "法术修炼" or 数据.修炼项目 == "猎术修炼" then
		消耗银子 = 30000 * 次数
	else
		消耗银子 = 20000 * 次数
	end

	if 数据.修炼项目 == nil then
		常规提示(数字id, "#Y/请选择你要提升的修炼")

		return
	end

	if 玩家数据[数字id].角色.数据.修炼[数据.修炼项目][3] <= 玩家数据[数字id].角色.数据.修炼[数据.修炼项目][1] then
		常规提示(数字id, "#Y/你的此项修炼已经达上限")

		return
	end

	if 帮派资材 < 5 * 次数 then
		常规提示(数字id, "#Y/贵帮当前的资材不足" .. 5 * 次数 .. "点，无法进行帮派点修")

		return
	end

	if 扣除帮贡(数字id, 5 * 次数) == false then
		常规提示(数字id, "#Y/当前帮贡不足" .. 5 * 次数 .. "点，无法进行帮派点修")

		return
	end

	if 玩家数据[数字id].角色:扣除储备和银子(消耗银子, "帮派点修") == false then
		常规提示(数字id, "#Y/你的当前的银子不够修炼哦")

		return
	end

	帮派数据[帮派编号].帮派资材.当前 = 帮派数据[帮派编号].帮派资材.当前 - 5 * 次数

	玩家数据[数字id].角色:帮派添加人物修炼经验(数字id, 10 * 次数, 数据.修炼项目)
end

function 道具处理类:比武奖励(id, 分组)
	local 道具格子 = 玩家数据[id].角色:取道具格子2()

	if 比武大会数据[分组] == nil then
		常规提示(id, "你没有这样的奖励可以领取")

		return 0
	elseif 比武大会数据[分组][id] == nil then
		常规提示(id, "你没有这样的奖励可以领取")

		return 0
	elseif 比武大会数据[分组][id].奖励 == false then
		常规提示(id, "你没有这样的奖励可以领取")

		return 0
	elseif 道具格子 <= 5 then
		常规提示(id, "您的道具栏物品已经满啦")

		return 0
	else
		local 书铁种类 = 取随机数(1, #书铁范围)
		比武大会数据[分组][id].奖励 = false
		self.经验奖励 = math.floor(玩家数据[id].角色.数据.等级 * 玩家数据[id].角色.数据.等级 * 玩家数据[id].角色.数据.等级)
		self.银子奖励 = 比武大会数据[分组][id].积分 * 20000 + 100000

		玩家数据[id].角色:添加经验(self.经验奖励, "比武大会奖励")
		玩家数据[id].角色:添加银子(self.银子奖励, "比武大会奖励", 1)
		添加仙玉(200, 玩家数据[id].账号, id, "英雄比武大会")
		self:给予道具(id, "灵饰指南书", {
			8
		})
		self:给予道具(id, "元灵晶石", {
			8
		})
		self:给予道具(id, "制造指南书", 90, 书铁种类)
		self:给予道具(id, "百炼精铁", 90, 书铁种类)

		玩家数据[id].角色.数据.比武积分.当前积分 = 玩家数据[id].角色.数据.比武积分.当前积分 + 50

		常规提示(id, "你领取了比武大会奖励:获得50点比武积分和80级灵饰书铁,90级装备书铁")

		if 分组 == "精锐组" then
			if 比武大会[分组][1] ~= nil and 比武大会[分组][1].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会精锐状元")
				添加仙玉(200, 玩家数据[id].账号, id, "英雄比武大会")

				玩家数据[id].角色.数据.比武积分.当前积分 = 玩家数据[id].角色.数据.比武积分.当前积分 + 200

				self:给予道具(id, "灵饰指南书", {
					10
				})
				self:给予道具(id, "元灵晶石", {
					10
				})
				self:给予道具(id, "制造指南书", 110, 书铁种类)
				self:给予道具(id, "百炼精铁", 110, 书铁种类)
				常规提示(id, "你领取了比武大会奖励:获得200点比武积分和100级灵饰书铁,110级装备书铁")
			end

			if 比武大会[分组][2] ~= nil and 比武大会[分组][2].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会精锐榜眼")
				添加仙玉(150, 玩家数据[id].账号, id, "英雄比武大会")

				玩家数据[id].角色.数据.比武积分.当前积分 = 玩家数据[id].角色.数据.比武积分.当前积分 + 150

				self:给予道具(id, "灵饰指南书", {
					10
				})
				self:给予道具(id, "元灵晶石", {
					10
				})
				self:给予道具(id, "制造指南书", 100, 书铁种类)
				self:给予道具(id, "百炼精铁", 100, 书铁种类)
				常规提示(id, "你领取了比武大会奖励:获得150点比武积分和100级灵饰书铁,100级装备书铁")
			end

			if 比武大会[分组][3] ~= nil and 比武大会[分组][3].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会精锐探花")
				添加仙玉(100, 玩家数据[id].账号, id, "英雄比武大会")

				玩家数据[id].角色.数据.比武积分.当前积分 = 玩家数据[id].角色.数据.比武积分.当前积分 + 100

				self:给予道具(id, "灵饰指南书", {
					8
				})
				self:给予道具(id, "元灵晶石", {
					8
				})
				self:给予道具(id, "制造指南书", 100, 书铁种类)
				self:给予道具(id, "百炼精铁", 100, 书铁种类)
				常规提示(id, "你领取了比武大会奖励:获得100点比武积分和80级灵饰书铁,100级装备书铁")
			end
		elseif 分组 == "勇武组" then
			if 比武大会[分组][1] ~= nil and 比武大会[分组][1].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会精锐状元")
				添加仙玉(200, 玩家数据[id].账号, id, "英雄比武大会")

				玩家数据[id].角色.数据.比武积分.当前积分 = 玩家数据[id].角色.数据.比武积分.当前积分 + 200

				self:给予道具(id, "灵饰指南书", {
					10
				})
				self:给予道具(id, "元灵晶石", {
					10
				})
				self:给予道具(id, "制造指南书", 110, 书铁种类)
				self:给予道具(id, "百炼精铁", 110, 书铁种类)
				常规提示(id, "你领取了比武大会奖励:获得200点比武积分和100级灵饰书铁,110级装备书铁")
			end

			if 比武大会[分组][2] ~= nil and 比武大会[分组][2].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会精锐榜眼")
				添加仙玉(150, 玩家数据[id].账号, id, "英雄比武大会")

				玩家数据[id].角色.数据.比武积分.当前积分 = 玩家数据[id].角色.数据.比武积分.当前积分 + 150

				self:给予道具(id, "灵饰指南书", {
					10
				})
				self:给予道具(id, "元灵晶石", {
					10
				})
				self:给予道具(id, "制造指南书", 100, 书铁种类)
				self:给予道具(id, "百炼精铁", 100, 书铁种类)
				常规提示(id, "你领取了比武大会奖励:获得150点比武积分和100级灵饰书铁,100级装备书铁")
			end

			if 比武大会[分组][3] ~= nil and 比武大会[分组][3].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会精锐探花")
				添加仙玉(100, 玩家数据[id].账号, id, "英雄比武大会")

				玩家数据[id].角色.数据.比武积分.当前积分 = 玩家数据[id].角色.数据.比武积分.当前积分 + 100

				self:给予道具(id, "灵饰指南书", {
					8
				})
				self:给予道具(id, "元灵晶石", {
					8
				})
				self:给予道具(id, "制造指南书", 100, 书铁种类)
				self:给予道具(id, "百炼精铁", 100, 书铁种类)
				常规提示(id, "你领取了比武大会奖励:获得200点比武积分和100级灵饰书铁,110级装备书铁")
			end
		elseif 分组 == "神威组" then
			if 比武大会[分组][1] ~= nil and 比武大会[分组][1].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会神威状元")
				添加仙玉(70, 玩家数据[id].账号, id, "英雄比武大会")
				self:给予道具(id, "灵饰指南书", {
					10
				})
				self:给予道具(id, "元灵晶石", {
					10
				})
				self:给予道具(id, "制造指南书", 100, 书铁种类)
				self:给予道具(id, "百炼精铁", 100, 书铁种类)
			end

			if 比武大会[分组][2] ~= nil and 比武大会[分组][2].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会神威榜眼")
				添加仙玉(60, 玩家数据[id].账号, id, "英雄比武大会")
				self:给予道具(id, "灵饰指南书", {
					10
				})
				self:给予道具(id, "元灵晶石", {
					10
				})
			end

			if 比武大会[分组][3] ~= nil and 比武大会[分组][3].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会神威探花")
				添加仙玉(50, 玩家数据[id].账号, id, "英雄比武大会")
				self:给予道具(id, "制造指南书", 100, 书铁种类)
				self:给予道具(id, "百炼精铁", 100, 书铁种类)
			end
		elseif 分组 == "天科组" then
			if 比武大会[分组][1] ~= nil and 比武大会[分组][1].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会天科状元")
				添加仙玉(80, 玩家数据[id].账号, id, "英雄比武大会")
				self:给予道具(id, "灵饰指南书", {
					12
				})
				self:给予道具(id, "元灵晶石", {
					12
				})
				self:给予道具(id, "制造指南书", 120, 书铁种类)
				self:给予道具(id, "百炼精铁", 120, 书铁种类)
			end

			if 比武大会[分组][2] ~= nil and 比武大会[分组][2].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会天科榜眼")
				添加仙玉(70, 玩家数据[id].账号, id, "英雄比武大会")
				self:给予道具(id, "灵饰指南书", {
					12
				})
				self:给予道具(id, "元灵晶石", {
					12
				})
			end

			if 比武大会[分组][3] ~= nil and 比武大会[分组][3].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会天科探花")
				添加仙玉(60, 玩家数据[id].账号, id, "英雄比武大会")
				self:给予道具(id, "制造指南书", 120, 书铁种类)
				self:给予道具(id, "百炼精铁", 120, 书铁种类)
			end
		elseif 分组 == "天启组" then
			if 比武大会[分组][1] ~= nil and 比武大会[分组][1].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会天启状元")
				添加仙玉(90, 玩家数据[id].账号, id, "英雄比武大会")
				self:给予道具(id, "灵饰指南书", {
					14
				})
				self:给予道具(id, "元灵晶石", {
					14
				})
				self:给予道具(id, "制造指南书", 140, 书铁种类)
				self:给予道具(id, "百炼精铁", 140, 书铁种类)
			end

			if 比武大会[分组][2] ~= nil and 比武大会[分组][2].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会天启榜眼")
				添加仙玉(80, 玩家数据[id].账号, id, "英雄比武大会")
				self:给予道具(id, "灵饰指南书", {
					14
				})
				self:给予道具(id, "元灵晶石", {
					14
				})
			end

			if 比武大会[分组][3] ~= nil and 比武大会[分组][3].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会天启探花")
				添加仙玉(70, 玩家数据[id].账号, id, "英雄比武大会")
				self:给予道具(id, "制造指南书", 140, 书铁种类)
				self:给予道具(id, "百炼精铁", 140, 书铁种类)
			end
		elseif 分组 == "天元组" then
			if 比武大会[分组][1] ~= nil and 比武大会[分组][1].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会天元状元")
				添加仙玉(100, 玩家数据[id].账号, id, "英雄比武大会")
				self:给予道具(id, "灵饰指南书", {
					14
				})
				self:给予道具(id, "元灵晶石", {
					14
				})
				self:给予道具(id, "制造指南书", 150, 书铁种类)
				self:给予道具(id, "百炼精铁", 150, 书铁种类)
			end

			if 比武大会[分组][2] ~= nil and 比武大会[分组][2].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会天元榜眼")
				添加仙玉(90, 玩家数据[id].账号, id, "英雄比武大会")
				self:给予道具(id, "灵饰指南书", {
					14
				})
				self:给予道具(id, "元灵晶石", {
					14
				})
			end

			if 比武大会[分组][3] ~= nil and 比武大会[分组][3].id == id then
				玩家数据[id].角色:添加称谓(id, "英雄会天元探花")
				添加仙玉(80, 玩家数据[id].账号, id, "英雄比武大会")
				self:给予道具(id, "制造指南书", 150, 书铁种类)
				self:给予道具(id, "百炼精铁", 150, 书铁种类)
			end
		end

		if 玩家数据[id].角色.数据.比武积分.总积分 >= 40 and 玩家数据[id].角色.数据.等级 >= 50 then
			玩家数据[id].角色:添加称谓(id, "江湖小虾")
		elseif 玩家数据[id].角色.数据.比武积分.总积分 >= 80 and 玩家数据[id].角色.数据.等级 >= 60 then
			玩家数据[id].角色:删除称谓(id, "江湖小虾")
			玩家数据[id].角色:添加称谓(id, "明日之星")
		elseif 玩家数据[id].角色.数据.比武积分.总积分 >= 140 and 玩家数据[id].角色.数据.等级 >= 70 then
			玩家数据[id].角色:删除称谓(id, "明日之星")
			玩家数据[id].角色:添加称谓(id, "武林高手")
		elseif 玩家数据[id].角色.数据.比武积分.总积分 >= 200 and 玩家数据[id].角色.数据.等级 >= 80 then
			玩家数据[id].角色:删除称谓(id, "武林高手")
			玩家数据[id].角色:添加称谓(id, "绝世奇才")
		elseif 玩家数据[id].角色.数据.比武积分.总积分 >= 280 and 玩家数据[id].角色.数据.等级 >= 90 then
			玩家数据[id].角色:删除称谓(id, "绝世奇才")
			玩家数据[id].角色:添加称谓(id, "威震三界")
		elseif 玩家数据[id].角色.数据.比武积分.总积分 >= 400 and 玩家数据[id].角色.数据.等级 >= 100 then
			玩家数据[id].角色:删除称谓(id, "威震三界")

			if 玩家数据[id].角色.数据.性别 == "男" then
				玩家数据[id].角色:添加称谓(id, "盖世英雄")
			else
				玩家数据[id].角色:添加称谓(id, "绝代佳人")
			end
		elseif 玩家数据[id].角色.数据.比武积分.总积分 >= 3000 and 玩家数据[id].角色.数据.等级 >= 100 then
			if 玩家数据[id].角色.数据.性别 == "男" then
				玩家数据[id].角色:删除称谓(id, "盖世英雄")
				玩家数据[id].角色:添加称谓(id, "气吞山河")
			else
				玩家数据[id].角色:删除称谓(id, "绝代佳人")
				玩家数据[id].角色:添加称谓(id, "绝世独立")
			end
		elseif 玩家数据[id].角色.数据.比武积分.总积分 >= 5000 and 玩家数据[id].角色.数据.等级 >= 155 then
			if 玩家数据[id].角色.数据.性别 == "男" then
				玩家数据[id].角色:删除称谓(id, "气吞山河")
				玩家数据[id].角色:添加称谓(id, "战天斗地")
			else
				玩家数据[id].角色:删除称谓(id, "绝世独立")
				玩家数据[id].角色:添加称谓(id, "姑射神人")
			end
		end
	end
end

function 道具处理类:首席争霸奖励(id, 门派)
	if 首席争霸数据[门派] == nil then
		常规提示(id, "你没有这样的奖励可以领取")

		return 0
	elseif 首席争霸数据[门派][id] == nil then
		常规提示(id, "你没有这样的奖励可以领取")

		return 0
	elseif 首席争霸数据[门派][id].奖励 == false then
		常规提示(id, "你没有这样的奖励可以领取")

		return 0
	else
		local 等级 = 玩家数据[id].角色.数据.等级
		local 获得仙玉 = 300
		local 仙玉1 = 100
		首席争霸数据[门派][id].奖励 = false
		self.经验奖励 = math.floor(等级 * 等级 * 等级)
		self.银子奖励 = 100000

		if 首席争霸[门派] ~= nil and 首席争霸[门派].id == id then
			玩家数据[id].角色:添加经验(self.经验奖励, "首席争霸赛奖励")
			玩家数据[id].角色:添加银子(self.银子奖励, "首席争霸赛奖励", 1)
			添加仙玉(获得仙玉, 玩家数据[id].账号, id, "首席争霸赛奖励")
		else
			玩家数据[id].角色:添加经验(self.经验奖励, "首席争霸赛奖励")
			玩家数据[id].角色:添加银子(self.银子奖励, "首席争霸赛奖励", 1)
			添加仙玉(仙玉1, 玩家数据[id].账号, id, "首席争霸赛奖励")
		end
	end
end

function 道具处理类:帮派竞赛奖励(id, 编号)
	local 道具格子 = 玩家数据[id].角色:取道具格子2()

	if 帮派竞赛数据 == nil or 帮派竞赛数据[编号] == nil then
		常规提示(id, "你没有这样的奖励可以领取")

		return 0
	elseif 帮派竞赛数据[编号][id] == nil then
		常规提示(id, "你没有这样的奖励可以领取")

		return 0
	elseif 帮派竞赛数据[编号][id].奖励 == false then
		常规提示(id, "你没有这样的奖励可以领取")

		return 0
	else
		帮派竞赛数据[编号][id].奖励 = false
		local 等级 = 玩家数据[id].角色.数据.等级
		self.经验奖励 = math.floor(等级 * 等级 * 等级)
		self.银子奖励 = 帮派竞赛数据[编号][id].积分 * 20000 + 1000000
		玩家数据[id].角色.数据.比武积分.当前积分 = 玩家数据[id].角色.数据.比武积分.当前积分 + 50000

		添加仙玉(50000, 玩家数据[id].账号, id, "帮派竞赛奖励")
		玩家数据[id].角色:添加经验(self.经验奖励, "帮派竞赛奖励")
		玩家数据[id].角色:添加银子(self.银子奖励, "帮派竞赛奖励", 1)
		玩家数据[id].道具:给予书铁(id, {
			12,
			12
		}, "指南书")
		玩家数据[id].道具:给予书铁(id, {
			12,
			12
		}, "精铁")
		常规提示(id, "你领取了帮派竞赛奖励,获得#R50000#点比武积分")
	end
end

function 道具处理类:一键出售处理(连接id, id)
	for b, c in pairs(玩家数据[id].角色.数据.道具) do
		local 数据 = {
			类型 = "道具",
			物品 = b
		}

		self:出售道具(连接id, id, 数据)
	end
end

取出售价格 = function(道具数据)
	local 名称 = 道具数据.名称
	local 总类 = 道具数据.总类
	local jg = tonumber(f函数.读配置(程序目录 .. "功能设置/一键出售价格.ini", "自定义一键出售", tostring(名称))) or 0

	if jg == 0 then
		if 总类 == 2 and 道具数据.级别限制 ~= nil then
			local aa = {
				50,
				100,
				500,
				900,
				1400,
				5000,
				10000,
				20000,
				40000,
				80000,
				160000,
				250000,
				400000,
				600000,
				1000000,
				1600000,
				2000000
			}

			return aa[math.min(qz(道具数据.级别限制 / 10) + 1, 17)]
		elseif 总类 == 1000 then
			if 道具数据.分类 == 4 then
				return 3000000
			elseif 道具数据.分类 == 3 then
				return 1000000
			elseif 道具数据.分类 == 2 then
				return 500000
			elseif 道具数据.分类 == 1 then
				return 100000
			end
		elseif string.find(名称, "经脉秘籍") then
			return 500000
		end

		return jg
	else
		if 名称 == "星辉石" then
			jg = jg * 2^(道具数据.级别限制 - 1)
		elseif 宝石列表1[名称] ~= nil then
			jg = jg * 2^(道具数据.级别限制 - 1)
		elseif 名称 == "百炼精铁" or 名称 == "制造指南书" or 名称 == "元灵晶石" or 名称 == "灵饰指南书" then
			jg = jg * (qz(道具数据.子类 / 10) + 1)
		elseif 名称 == "上古锻造图策" or 名称 == "炼妖石" then
			jg = jg * (qz(道具数据.级别限制 / 10) + 1)
		elseif 名称 == "未激活的符石" then
			jg = jg * 2^(道具数据.子类 - 1)
		end

		return jg
	end
end

function 道具处理类:一键出售道具1(连接id,id,单件,物品编号,超级行囊类型,起始)
    local 道具数据
    local 回收说明="#Y你回收掉了"
    if 超级行囊类型~=nil then
      道具数据=玩家数据[id].角色.数据.超级行囊[取超级行囊类型(超级行囊类型)]
    else
      道具数据=玩家数据[id].角色.数据.道具
    end
    local ks=1
    local js=20

    if 起始~=nil then
      ks=起始+1
      js=起始+80
    end

    for n=ks,js do
      if 单件=="关闭" then return end

      if 单件~=nil then
        单件="关闭"
        if 物品编号~=nil and 道具数据[物品编号]~=nil then
          n=物品编号
        else
          常规提示(id,"#Y空道具！")
          return
        end
      end

      local 道具id=道具数据[n]

      if 道具id == nil then
        goto lable;
      end

      local 物品名称 = self.数据[道具id].名称
      local 物品数量 = 1
      local 出售价格 = 1
      local 出售总价 = 0
      if self.数据[道具id].名称=="帮派银票" then
          goto lable;
      elseif self.数据[道具id].级别限制 ~= nil and tonumber(self.数据[道具id].级别限制) > 160 then
          常规提示(id,"#Y背包#G"..物品名称.."#Y等级过高、无法出售")
          goto lable;
      elseif self.数据[道具id].锁定~=nil then
          goto lable;
      end

      -- if self.数据[道具id].不可交易 then
        -- 常规提示(id,"#Y背包#G"..物品名称.."#Y不可交易、无法出售")
      --     goto lable;
      -- end


      -- print(f函数.读配置(程序目录..[[功能设置/一键出售价格.ini]],"自定义一键出售",物品名称))
      local jg= 取出售价格(self.数据[道具id])

      if jg == nil or jg == 0 then
        if 单件~=nil then
          常规提示(id,"#Y背包#G"..物品名称.."#Y无法出售")
        end
        goto lable;
      else

        出售价格 = jg+0
        -- if 出售价格 >=1000000 then
        --   出售价格= 1000000
        -- end
        if self.数据[道具id].数量 ~= nil then
          物品数量 = self.数据[道具id].数量
        end
        出售总价 = 出售价格*物品数量
        if self.数据[道具id].识别码==nil then
          self.数据[道具id].识别码="无法识别"
        end
        回收说明=回收说明.."#G"..物品名称.."*"..物品数量.."=#R"..出售总价.."两#G,"
         常规提示(id,"#Y您回收掉了#G"..物品名称.."#Y回收价格为#G"..出售价格)

        玩家数据[id].角色:添加银子(出售总价,"系统出售",1)
        self.数据[道具数据[n]]=nil
        道具数据[n]=nil
     end

     if 单件~=nil then
      回收说明=回收说明.."】"
      回收说明=string.gsub(回收说明,",】","")
      常规提示(id,回收说明)
      if 超级行囊类型~=nil then
        self:索要超级行囊(玩家数据[id].连接id,id,取超级行囊类型(超级行囊类型),超级行囊类型,true)
      else
        刷新道具行囊单格(id,"道具",n,玩家数据[id].角色.数据.道具)
        --道具刷新(id)--通过
      end

      return
     end
     ::lable::
    end
    回收说明=回收说明.."】"
    回收说明=string.gsub(回收说明,",】","")
    常规提示(id,回收说明)
    发送数据(连接id,3800)
    if 超级行囊类型~=nil then
      self:索要超级行囊(玩家数据[id].连接id,id,取超级行囊类型(超级行囊类型),超级行囊类型,true)
    else
      道具刷新(id)--通过
    end

end


function 道具处理类:发放雪人奖励(id)
	任务处理类:全服蚩尤(self.任务id, id组)

	奖励名称[id] = "100W储备"

	玩家数据[id].角色:添加储备(1000000, "雪人奖励", 1)

	if ygsj() <= 10 then
		广播消息({
			频道 = "xt",
			内容 = format("#S(雪人奖励)#Y#R/%s#Y获得雪人赠送的#G/%s#Y", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	end
end

function 道具处理类:雪人积分兑换(id)
	if 玩家数据[id].角色.数据.春节雪人 == nil then
		常规提示(id, "你还没有获得雪人积分。")

		return
	elseif 玩家数据[id].角色.数据.春节雪人 < 500 then
		常规提示(id, "本次操作需要消耗500点雪人积分。")

		return
	end

	玩家数据[id].角色.数据.春节雪人 = 玩家数据[id].角色.数据.春节雪人 - 500
end

function 道具处理类:显示(x, y)
end

return 道具处理类
